<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-04-17T03:08:40.980031" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-flow-services.txt">
<suite id="s1-s1" name="MD SAL NSF OF10" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10">
<kw name="Start Mininet" owner="Utils" type="SETUP">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:08:41.444608" level="INFO">Start the test on the base edition</msg>
<arg>Start the test on the base edition</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:08:41.444265" elapsed="0.000420"/>
</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-04-17T03:08:41.447449" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:41.447112" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-04-17T03:08:41.447069" elapsed="0.000535"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:08:41.448666" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:08:41.448811" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:08:41.447773" elapsed="0.001071"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:08:41.449547" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:08:41.448990" elapsed="0.000619"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:08:41.450336" level="INFO">${conn_id} = 1</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-04-17T03:08:41.449778" elapsed="0.000596"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:08:41.451601" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:08:41.451712" 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-04-17T03:08:41.451017" elapsed="0.000730"/>
</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-04-17T03:08:41.451907" elapsed="0.000385"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:08:41.453222" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:08:42.162208" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:08:41 UTC 2026

  System load:  0.35               Processes:             106
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:08:41.452868" elapsed="0.709493"/>
</kw>
<msg time="2026-04-17T03:08:42.162470" 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="PASS" start="2026-04-17T03:08:41.452491" elapsed="0.710071"/>
</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="PASS" start="2026-04-17T03:08:41.450652" elapsed="0.712031"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:08:42.163147" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:08:43.339827" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:08:43.340377" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:08:43.340564" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:08:42.162893" elapsed="1.177738"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:08:43.341203" elapsed="0.001269"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:08:43.343721" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:08:43.342869" elapsed="0.001172"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:08:43.344735" elapsed="0.000116"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:08:43.344293" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-04-17T03:08:43.344213" elapsed="0.000800"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:08:43.345439" elapsed="0.000070"/>
</return>
<status status="PASS" start="2026-04-17T03:08:43.345160" elapsed="0.000400"/>
</branch>
<status status="PASS" start="2026-04-17T03:08:43.345117" elapsed="0.000482"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:08:43.345653" elapsed="0.000020"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:08:43.349040" elapsed="0.000557"/>
</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="PASS" start="2026-04-17T03:08:43.349800" elapsed="0.000285"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:08:43.350255" elapsed="0.000168"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:08:43.346254" elapsed="0.004252"/>
</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="PASS" start="2026-04-17T03:08:41.446462" elapsed="1.904185"/>
</kw>
<msg time="2026-04-17T03:08:43.350743" 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="PASS" start="2026-04-17T03:08:41.445699" elapsed="1.905138"/>
</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="PASS" start="2026-04-17T03:08:41.445183" elapsed="1.905773"/>
</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-04-17T03:08:43.353891" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:43.353617" elapsed="0.000350"/>
</branch>
<status status="PASS" start="2026-04-17T03:08:43.353592" elapsed="0.000405"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:08:43.354318" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:08:43.354464" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:08:43.354132" elapsed="0.000378"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:08:43.355244" 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.171.160" 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-04-17T03:08:43.354680" elapsed="0.000633"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:08:43.355904" 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-04-17T03:08:43.355486" elapsed="0.000445"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:08:43.357943" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:08:43.358971" 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-04-17T03:08:43.356503" elapsed="0.002499"/>
</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-04-17T03:08:43.359726" elapsed="0.001440"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:08:43.362515" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:08:43.691528" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:08:41 UTC 2026

  System load:  0.35               Processes:             106
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:08:42 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:08:43.362010" elapsed="0.329747"/>
</kw>
<msg time="2026-04-17T03:08:43.691989" 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="PASS" start="2026-04-17T03:08:43.361567" elapsed="0.330730"/>
</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="PASS" start="2026-04-17T03:08:43.356153" elapsed="0.336324"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:08:43.693184" 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-04-17T03:08:43.725631" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:08:43.725942" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:08:43.726040" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:08:43.692772" elapsed="0.033319"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:08:43.726485" elapsed="0.000567"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:08:43.728196" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:08:43.727486" elapsed="0.000805"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:08:43.728953" elapsed="0.000134"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:08:43.728577" elapsed="0.000597"/>
</branch>
<status status="PASS" start="2026-04-17T03:08:43.728505" elapsed="0.000724"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:08:43.729654" elapsed="0.000099"/>
</return>
<status status="PASS" start="2026-04-17T03:08:43.729360" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-17T03:08:43.729322" elapsed="0.000570"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:08:43.729971" elapsed="0.000032"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:08:43.734286" elapsed="0.000391"/>
</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="PASS" start="2026-04-17T03:08:43.734814" elapsed="0.000197"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:08:43.735130" elapsed="0.000103"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:08:43.730752" elapsed="0.004534"/>
</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="PASS" start="2026-04-17T03:08:43.352818" elapsed="0.382578"/>
</kw>
<msg time="2026-04-17T03:08:43.735460" 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="PASS" start="2026-04-17T03:08:43.351878" elapsed="0.383638"/>
</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="PASS" start="2026-04-17T03:08:43.351205" elapsed="0.384396"/>
</kw>
<status status="PASS" start="2026-04-17T03:08:41.444881" elapsed="2.290782"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:08:43.736208" level="INFO">${mininet_conn_id} = 5</msg>
<var>${mininet_conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:08:43.735802" elapsed="0.000432"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:08:43.736757" level="INFO">${mininet_conn_id} = 5</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-04-17T03:08:43.736399" elapsed="0.000400"/>
</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-04-17T03:08:43.738515" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:08:43.738598" 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-04-17T03:08:43.738192" elapsed="0.000430"/>
</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-04-17T03:08:43.738750" elapsed="0.000319"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:08:43.739875" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:08:44.119258" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:08:41 UTC 2026

  System load:  0.35               Processes:             106
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:08:43 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:08:43.739552" elapsed="0.380115"/>
</kw>
<msg time="2026-04-17T03:08:44.119783" 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="PASS" start="2026-04-17T03:08:43.739206" elapsed="0.380691"/>
</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="PASS" start="2026-04-17T03:08:43.737777" elapsed="0.382264"/>
</kw>
<msg time="2026-04-17T03:08:44.120099" 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="PASS" start="2026-04-17T03:08:43.737400" elapsed="0.382754"/>
</kw>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:08:43.736972" elapsed="0.383282"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:08:44.120820" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-04-17T03:08:44.145084" level="INFO">Command exited with return code 0.</msg>
<arg>sudo ovs-vsctl set-manager ptcp:6644</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:08:44.120609" elapsed="0.024752"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:08:44.187831" level="INFO">sudo mn --controller=remote,ip=10.30.170.85 --topo tree,2 --switch ovsk,protocols=OpenFlow13</msg>
<arg>${start}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:08:44.145930" elapsed="0.042156"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:08:44.530103" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6653
Unable to contact the remote controller at 10.30.170.85:6633
Setting remote controller to 10.30.170.85:6653
*** Adding hosts:
h1 h2 h3 h4 
*** Adding switches:
s1 s2 s3 
*** Adding links:
(s1, s2) (s1, s3) (s2, h1) (s2, h2) (s3, h3) (s3, h4) 
*** Configuring hosts
h1 h2 h3 h4 
*** Starting controller
c0 
*** Starting 3 switches
s1 s2 s3 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:08:44.188525" elapsed="0.343626"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-04-17T03:08:41.442829" elapsed="3.090850"/>
</kw>
<suite id="s1-s1-s1" name="010 Restconf Inventory" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10/010_restconf_inventory.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-04-17T03:08:44.597355" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09e223710&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-04-17T03:08:44.595922" elapsed="0.001821"/>
</kw>
<test id="s1-s1-s1-t1" name="Get list of nodes" line="30">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:08:44.610292" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:44.812342" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:45.215544" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:45.218693" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:08:44.605843" elapsed="0.623644">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:08:45.230156" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:45.229714" elapsed="0.000514"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:45.230460" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:45.230263" elapsed="0.000255"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:08:45.229669" elapsed="0.000876"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:45.230668" elapsed="0.000022"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:45.231001" elapsed="0.000022"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:08:45.230854" elapsed="0.000204"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:08:45.230763" elapsed="0.000328"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:08:44.605351" elapsed="0.625890">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:08:47.246822" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:47.448691" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:47.851711" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:47.854749" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:08:47.242897" elapsed="0.617840">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:08:47.862026" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:47.861195" elapsed="0.000980"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:47.862604" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:47.862238" elapsed="0.000491"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:08:47.861092" elapsed="0.001684"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:47.863041" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:47.863866" elapsed="0.000061"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:08:47.863375" elapsed="0.000648"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:08:47.863220" elapsed="0.000877"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:08:47.241713" elapsed="0.622732">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:08:49.884479" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:50.086749" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:50.489857" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:50.493010" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:08:49.880345" elapsed="0.616467">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:08:50.497861" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:50.497123" elapsed="0.000841"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:50.498252" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:50.498016" elapsed="0.000313"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:08:50.497048" elapsed="0.001313"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:50.498560" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:50.499003" elapsed="0.000034"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:08:50.498800" elapsed="0.000290"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:08:50.498686" elapsed="0.000452"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:08:49.879485" elapsed="0.620011">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:08:52.521645" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:52.723211" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:53.126154" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:53.128613" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:08:52.517419" elapsed="0.615622">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:08:53.133662" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:53.133227" elapsed="0.000523"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:53.133986" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:53.133786" elapsed="0.000279"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:08:53.133186" elapsed="0.000909"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:53.134257" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:53.134660" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:08:53.134485" elapsed="0.000290"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:08:53.134371" elapsed="0.000447"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:08:52.515987" elapsed="0.618980">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:08:55.150524" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.351974" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.754535" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.757019" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:08:55.147607" elapsed="0.614869">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:08:55.763445" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:55.762762" elapsed="0.000827"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:55.763946" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:08:55.763648" elapsed="0.000418"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:08:55.762701" elapsed="0.001413"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:55.764462" elapsed="0.000052"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:55.765199" elapsed="0.000061"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:08:55.764839" elapsed="0.000626"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:08:55.764638" elapsed="0.000866"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:08:55.147044" elapsed="0.618591">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:08:55.765753" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:08:44.598657" elapsed="11.167200">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the inventory</doc>
<status status="FAIL" start="2026-04-17T03:08:44.597870" elapsed="11.168212">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s1-t2" name="Check No Link Down" line="39">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:08:55.779354" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.980618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:56.382745" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:56.385304" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:08:55.776727" elapsed="0.612761">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:56.389907" elapsed="0.000050"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:56.390196" elapsed="0.000042"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:56.390531" elapsed="0.000040"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:08:55.776250" elapsed="0.614511">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:08:58.410430" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:58.612078" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:59.014373" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:59.016821" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:08:58.406866" elapsed="0.615568">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:59.022939" elapsed="0.000046"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:59.023236" elapsed="0.000036"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:08:59.023502" elapsed="0.000034"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:08:58.406066" elapsed="0.617649">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:01.043074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:01.244610" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:01.648922" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:01.651161" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:01.040017" elapsed="0.614397">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:01.654881" elapsed="0.000045"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:01.655124" elapsed="0.000028"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:01.655339" elapsed="0.000026"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:09:01.039450" elapsed="0.616110">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:03.674023" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:03.875555" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:04.277980" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:04.280103" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:03.671178" elapsed="0.612768">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:04.284339" elapsed="0.000066"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:04.284611" elapsed="0.000032"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:04.284849" elapsed="0.000032"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:09:03.670634" elapsed="0.614423">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:06.303469" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:06.504981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:06.907944" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:06.910287" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:06.300596" elapsed="0.614729">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:06.915853" elapsed="0.000063"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:06.916198" elapsed="0.000047"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:06.916568" elapsed="0.000047"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:09:06.299614" elapsed="0.617237">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:09:06.917085" level="FAIL">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Specific Number Of Elements At URI</arg>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:08:55.766874" elapsed="11.150426">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.919582" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:09:06.918963" elapsed="0.000646"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="NOT RUN" start="2026-04-17T03:09:06.919868" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:09:06.919701" elapsed="0.000223"/>
</branch>
<status status="PASS" start="2026-04-17T03:09:06.919675" elapsed="0.000272"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="PASS" start="2026-04-17T03:09:06.920082" elapsed="0.000221"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.921336" level="FAIL">'6595' does not contain '-'</msg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-04-17T03:09:06.920804" elapsed="0.000613">'6595' does not contain '-'</status>
</kw>
<msg time="2026-04-17T03:09:06.921512" level="INFO">${match} = False</msg>
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:09:06.920466" elapsed="0.001071"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.922046" level="INFO">${bug_url} = https://bugs.opendaylight.org/show_bug.cgi?id=6595</msg>
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:09:06.921692" elapsed="0.000381"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.922531" level="INFO">${msg} = This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=6595</msg>
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:09:06.922207" elapsed="0.000351"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.923020" level="INFO">${newline} = 
</msg>
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:09:06.922686" elapsed="0.000360"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.923566" level="INFO">Set test message to:
This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=6595

Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="PASS" start="2026-04-17T03:09:06.923176" elapsed="0.000500"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.924088" level="INFO">This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=6595</msg>
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:09:06.923808" elapsed="0.000328"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.924826" level="INFO">Set tag 'https://bugs.opendaylight.org/show_bug.cgi?id=6595'.</msg>
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="PASS" start="2026-04-17T03:09:06.924466" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-04-17T03:09:06.924203" elapsed="0.000705"/>
</branch>
<status status="PASS" start="2026-04-17T03:09:06.924185" elapsed="0.000747"/>
</if>
<arg>6595</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-04-17T03:09:06.918292" elapsed="0.006686"/>
</kw>
<doc>Check there is no link down. We have 8 ports in total: s1=2, s2=3, s3=3.</doc>
<tag>https://bugs.opendaylight.org/show_bug.cgi?id=6595</tag>
<status status="FAIL" start="2026-04-17T03:08:55.766346" elapsed="11.158682">This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=6595

Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s1-t3" name="Get node 1 inventory" line="50">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:09:06.926144" level="INFO">${list} = ['"flow-node-inventory:flow-feature-capability-flow-stats"', '"flow-node-inventory:flow-feature-capability-table-stats"', '"flow-node-inventory:flow-feature-capability-port-stats"', '"flow-node-invent...</msg>
<var>${list}</var>
<arg>@{SW_CAPABILITIES}</arg>
<arg>${SW_VENDOR}</arg>
<arg>${SW_IPADDRESS}</arg>
<arg>${SW_HARDWARE}</arg>
<arg>openflow:1:1</arg>
<arg>openflow:1:2</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:09:06.925704" elapsed="0.000468"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:06.936411" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:07.137787" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:07.540373" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:07.542949" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:06.933644" elapsed="0.614719">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:07.549419" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:07.548738" elapsed="0.000839"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:07.549964" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:07.549650" elapsed="0.000441"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:07.548672" elapsed="0.001467"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:07.550479" elapsed="0.000057"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:07.551207" elapsed="0.000053"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:07.550837" elapsed="0.000513"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:07.550680" elapsed="0.000783"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:06.933115" elapsed="0.618607">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:09.567101" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:09.768563" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:10.171658" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:10.178220" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:09.564068" elapsed="0.618039">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:10.182583" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:10.182255" elapsed="0.000394"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:10.182815" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:10.182677" elapsed="0.000194"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:10.182222" elapsed="0.000670"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:10.183008" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:10.183278" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:10.183155" elapsed="0.000179"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:10.183088" elapsed="0.000274"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:09.563369" elapsed="0.620112">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:12.194992" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:12.397736" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:12.801000" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:12.802947" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:12.191372" elapsed="0.614692">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:12.806689" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:12.806254" elapsed="0.000514"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:12.806994" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:12.806803" elapsed="0.000259"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:12.806210" elapsed="0.000878"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:12.807238" elapsed="0.000027"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:12.807615" elapsed="0.000024"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:12.807455" elapsed="0.000231"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:12.807350" elapsed="0.000374"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:12.190488" elapsed="0.617374">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:14.821061" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:15.022556" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:15.425933" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:15.428692" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:14.817539" elapsed="0.617318">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:15.435960" elapsed="0.000091"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:15.435248" elapsed="0.000889"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:15.436344" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:15.436169" elapsed="0.000274"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:15.435180" elapsed="0.001288"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:15.436615" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:15.436980" elapsed="0.000025"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:15.436816" elapsed="0.000237"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:15.436726" elapsed="0.000368"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:14.816673" elapsed="0.620570">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:17.454591" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:17.656068" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.058786" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.062129" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:17.451503" elapsed="0.616083">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:18.068790" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:18.067944" elapsed="0.001003"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:18.069358" elapsed="0.000087"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:18.069015" elapsed="0.000520"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:18.067861" elapsed="0.001737"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:18.069872" elapsed="0.000048"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:18.070527" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:18.070200" elapsed="0.000451"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:18.070049" elapsed="0.000665"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:17.450766" elapsed="0.620199">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:09:18.071355" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:09:06.926333" elapsed="11.145279">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-04-17T03:09:06.925277" elapsed="11.146800">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s1-t4" name="Get node 2 inventory" line="61">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:09:18.074555" level="INFO">${list} = ['"flow-node-inventory:flow-feature-capability-flow-stats"', '"flow-node-inventory:flow-feature-capability-table-stats"', '"flow-node-inventory:flow-feature-capability-port-stats"', '"flow-node-invent...</msg>
<var>${list}</var>
<arg>@{SW_CAPABILITIES}</arg>
<arg>${SW_VENDOR}</arg>
<arg>${SW_IPADDRESS}</arg>
<arg>${SW_HARDWARE}</arg>
<arg>openflow:2:1</arg>
<arg>openflow:2:2</arg>
<arg>openflow:2:3</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:09:18.073761" elapsed="0.000834"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:18.086648" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.288133" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.690701" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.693517" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:18.083281" elapsed="0.614702">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:18.698624" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:18.698186" elapsed="0.000526"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:18.698960" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:18.698749" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:18.698143" elapsed="0.000924"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:18.699227" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:18.699636" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:18.699457" elapsed="0.000257"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:18.699346" elapsed="0.000406"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:18.082692" elapsed="0.617205">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:20.718246" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:20.919694" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:21.322267" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:21.324901" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:20.715291" elapsed="0.615503">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:21.331498" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:21.331064" elapsed="0.000500"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:21.331735" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:21.331592" elapsed="0.000200"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:21.331009" elapsed="0.000804"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:21.331931" elapsed="0.000021"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:21.332200" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:21.332071" elapsed="0.000186"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:21.332007" elapsed="0.000277"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:20.714619" elapsed="0.617781">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:23.349620" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:23.551280" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:23.954007" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:23.956676" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:23.346722" elapsed="0.613312">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:23.960694" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:23.960244" elapsed="0.000542"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:23.961023" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:23.960824" elapsed="0.000277"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:23.960200" elapsed="0.000932"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:23.961295" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:23.961723" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:23.961519" elapsed="0.000285"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:23.961430" elapsed="0.000412"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:23.345933" elapsed="0.616052">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:25.979066" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:26.180558" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:26.583985" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:26.587320" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:25.975194" elapsed="0.620634">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:26.597138" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:26.596260" elapsed="0.001039"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:26.597658" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:26.597368" elapsed="0.000372"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:26.596181" elapsed="0.001589"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:26.597938" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:26.598353" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:26.598161" elapsed="0.000292"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:26.598054" elapsed="0.000439"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:25.974060" elapsed="0.624633">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:28.614819" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:28.816249" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.219072" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.221432" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:28.610959" elapsed="0.616105">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:29.228041" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:29.227362" elapsed="0.000828"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:29.228618" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:29.228250" elapsed="0.000505"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:29.227301" elapsed="0.001505"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:29.229116" elapsed="0.000057"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:29.229831" elapsed="0.000051"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:29.229520" elapsed="0.000454"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:29.229318" elapsed="0.000728"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:28.609880" elapsed="0.620466">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:09:29.230612" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:09:18.074869" elapsed="11.155921">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-04-17T03:09:18.072951" elapsed="11.158060">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s1-t5" name="Get node 3 inventory" line="72">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:09:29.232334" level="INFO">${list} = ['"flow-node-inventory:flow-feature-capability-flow-stats"', '"flow-node-inventory:flow-feature-capability-table-stats"', '"flow-node-inventory:flow-feature-capability-port-stats"', '"flow-node-invent...</msg>
<var>${list}</var>
<arg>@{SW_CAPABILITIES}</arg>
<arg>${SW_VENDOR}</arg>
<arg>${SW_IPADDRESS}</arg>
<arg>${SW_HARDWARE}</arg>
<arg>openflow:3:1</arg>
<arg>openflow:3:2</arg>
<arg>openflow:3:3</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:09:29.231778" elapsed="0.000588"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:29.242074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.443619" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.846504" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.849331" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:29.239602" elapsed="0.615333">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:29.855932" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:29.855285" elapsed="0.000788"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:29.856475" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:29.856132" elapsed="0.000483"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:29.855219" elapsed="0.001455"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:29.856940" elapsed="0.000047"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:29.857729" elapsed="0.000069"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:29.857311" elapsed="0.000583"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:29.857135" elapsed="0.000821"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:29.239061" elapsed="0.619116">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:31.873768" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:32.075730" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:32.478581" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:32.480943" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:31.870653" elapsed="0.614198">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:32.485449" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:32.485096" elapsed="0.000422"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:32.485704" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:32.485548" elapsed="0.000210"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:32.485060" elapsed="0.000720"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:32.485898" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:32.486193" elapsed="0.000022"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:32.486058" elapsed="0.000194"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:32.485978" elapsed="0.000301"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:31.869967" elapsed="0.616445">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:34.502938" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:34.704464" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:35.107193" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:35.110361" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:34.499353" elapsed="0.615406">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:35.115601" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:35.114993" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:35.116073" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:35.115787" elapsed="0.000399"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:35.114936" elapsed="0.001294"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:35.116489" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:35.117017" elapsed="0.000040"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:35.116771" elapsed="0.000352"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:35.116641" elapsed="0.000532"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:34.498270" elapsed="0.619109">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:37.135412" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:37.337471" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:37.740370" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:37.743514" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:37.132282" elapsed="0.616657">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:37.749575" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:37.749142" elapsed="0.000520"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:37.749901" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:37.749700" elapsed="0.000277"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:37.749097" elapsed="0.000909"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:37.750164" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:37.750547" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:37.750352" elapsed="0.000273"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:37.750268" elapsed="0.000394"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:37.131605" elapsed="0.619215">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:39.766666" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:39.968527" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:40.371248" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:40.373943" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:39.763234" elapsed="0.617082">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:40.381369" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:40.380796" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:40.381770" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:40.381535" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:40.380715" elapsed="0.001164"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:40.382048" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:40.382483" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:40.382267" elapsed="0.000296"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:40.382163" elapsed="0.000442"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:39.762234" elapsed="0.620566">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:09:40.382989" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:09:29.232559" elapsed="11.150594">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-04-17T03:09:29.231334" elapsed="11.152248">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s1-t6" name="Link Down" line="83">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:09:40.389224" level="INFO">link s1 s2 down</msg>
<arg>link s1 s2 down</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:09:40.384886" elapsed="0.004423"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:09:40.393048" level="INFO">mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:09:40.389484" elapsed="0.003625"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:09:40.393666" level="INFO">@{list} = [ "link-down":true ]</msg>
<var>@{list}</var>
<arg>"link-down":true</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:09:40.393257" elapsed="0.000437"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:40.404253" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:40.605802" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:41.009261" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:41.012292" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:40.401147" elapsed="0.614941">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:41.016892" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:41.016333" elapsed="0.000655"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:41.017245" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:41.017028" elapsed="0.000295"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:41.016278" elapsed="0.001074"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:41.017547" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:41.017942" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:41.017755" elapsed="0.000264"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:41.017663" elapsed="0.000396"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:40.400615" elapsed="0.617602">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:43.035821" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:43.238315" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:43.641294" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:43.643653" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:43.031594" elapsed="0.617553">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:43.650032" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:43.649510" elapsed="0.000627"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:43.650483" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:43.650177" elapsed="0.000393"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:43.649450" elapsed="0.001153"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:43.650807" elapsed="0.000034"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:43.651274" elapsed="0.000033"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:43.651070" elapsed="0.000296"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:43.650935" elapsed="0.000499"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:43.030486" elapsed="0.621120">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:45.668168" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:45.870157" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:46.273719" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:46.275804" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:45.664448" elapsed="0.614575">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:46.279923" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:46.279473" elapsed="0.000562"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:46.280286" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:46.280076" elapsed="0.000291"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:46.279194" elapsed="0.001225"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:46.280593" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:46.280971" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:46.280787" elapsed="0.000268"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:46.280701" elapsed="0.000395"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:45.663430" elapsed="0.617818">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:48.297324" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:48.498981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:48.901640" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:48.904503" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:48.294004" elapsed="0.615807">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:48.910851" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:48.910103" elapsed="0.000893"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:48.911316" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:48.911056" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:48.910043" elapsed="0.001369"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:48.911535" elapsed="0.000022"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:48.911811" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:48.911679" elapsed="0.000189"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:48.911616" elapsed="0.000280"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:48.292942" elapsed="0.619058">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:50.925373" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:51.127258" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:51.529686" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:51.532891" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:50.922423" elapsed="0.614354">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:51.537417" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:51.536975" elapsed="0.000534"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:51.537774" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:51.537547" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:51.536931" elapsed="0.000953"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:51.538046" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:51.538436" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:51.538238" elapsed="0.000279"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:51.538152" elapsed="0.000402"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:50.921468" elapsed="0.617231">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:09:51.538912" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:09:40.393861" elapsed="11.145190">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A2/node-connector=openflow%3A2%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:51.539301" elapsed="0.000035"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-04-17T03:09:40.384201" elapsed="11.155403">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s1-t7" name="Link Up" line="101">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:09:51.543574" level="INFO">link s1 s2 up</msg>
<arg>link s1 s2 up</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:09:51.540433" elapsed="0.003234"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:09:51.547279" level="INFO">mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:09:51.543874" elapsed="0.003460"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:09:51.547852" level="INFO">@{list} = [ "link-down":false ]</msg>
<var>@{list}</var>
<arg>"link-down":false</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:09:51.547491" elapsed="0.000388"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:51.557664" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:51.759090" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:52.161948" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:52.164178" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:51.554894" elapsed="0.613656">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:52.169210" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:52.168757" elapsed="0.000566"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:52.169663" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:52.169364" elapsed="0.000380"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:52.168714" elapsed="0.001062"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:52.169947" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:52.170324" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:52.170142" elapsed="0.000287"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:52.170055" elapsed="0.000416"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:51.554331" elapsed="0.616290">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:54.188995" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:54.390968" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:54.794108" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:54.796505" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:54.185821" elapsed="0.613841">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:54.800285" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:54.799863" elapsed="0.000503"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:54.800576" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:54.800421" elapsed="0.000211"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:54.799823" elapsed="0.000831"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:54.800773" elapsed="0.000021"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:54.801055" elapsed="0.000026"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:54.800914" elapsed="0.000208"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:54.800851" elapsed="0.000299"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:54.184987" elapsed="0.616268">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:56.818169" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:57.019717" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:57.422695" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:57.425430" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:56.814501" elapsed="0.616467">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:09:57.432533" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:57.431259" elapsed="0.001352"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:57.432786" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:09:57.432640" elapsed="0.000201"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:09:57.431198" elapsed="0.001664"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:57.432975" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:09:57.433245" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:09:57.433115" elapsed="0.000184"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:09:57.433051" elapsed="0.000275"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:56.813587" elapsed="0.619859">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:09:59.448683" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:59.650442" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:00.053525" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:00.056136" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:09:59.445024" elapsed="0.615636">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:10:00.061430" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:00.060925" elapsed="0.000601"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:00.061775" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:00.061568" elapsed="0.000284"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:10:00.060873" elapsed="0.001010"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:00.062048" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:00.062434" elapsed="0.000024"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:10:00.062255" elapsed="0.000244"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:10:00.062160" elapsed="0.000375"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:09:59.444148" elapsed="0.618526">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:02.078268" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.279961" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.682757" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.685853" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:02.075250" elapsed="0.615865">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:10:02.691998" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:02.691415" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:02.692627" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:02.692189" elapsed="0.000599"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:10:02.691332" elapsed="0.001484"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:02.692993" elapsed="0.000022"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:02.693270" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:10:02.693137" elapsed="0.000188"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:10:02.693072" elapsed="0.000281"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:10:02.074557" elapsed="0.618917">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:10:02.693618" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:09:51.548030" elapsed="11.145691">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A2/node-connector=openflow%3A2%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:02.693904" elapsed="0.000023"/>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-04-17T03:09:51.539910" elapsed="11.154208">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:10:02.694879" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:10:02.694770" elapsed="0.000194"/>
</kw>
<doc>Test suite for RESTCONF inventory</doc>
<status status="FAIL" start="2026-04-17T03:08:44.533967" elapsed="78.161034"/>
</suite>
<suite id="s1-s1-s2" name="020 Restconf Topology" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10/020_restconf_topology.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-04-17T03:10:02.735957" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/json'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c69c190&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}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-04-17T03:10:02.735446" elapsed="0.000728"/>
</kw>
<test id="s1-s1-s2-t1" name="Get RESTCONF Topology" line="20">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:02.747052" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.948716" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:03.351638" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:03.354212" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:02.743610" elapsed="0.616041">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:10:03.360632" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:03.359994" elapsed="0.000775"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:03.361127" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:03.360829" elapsed="0.000415"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:10:03.359921" elapsed="0.001370"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:03.361628" elapsed="0.000052"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:03.362462" elapsed="0.000068"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:10:03.362126" elapsed="0.000516"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:10:03.361964" elapsed="0.000768"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:10:02.743144" elapsed="0.619795">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:05.379365" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:05.581239" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:05.984098" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:05.986493" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:05.375562" elapsed="0.616238">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:10:05.992740" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:05.992095" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:05.993246" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:05.992943" elapsed="0.000425"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:10:05.992034" elapsed="0.001416"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:05.993775" elapsed="0.000049"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:05.994084" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:10:05.993951" elapsed="0.000189"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:10:05.993888" elapsed="0.000279"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:10:05.374730" elapsed="0.619546">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:08.011260" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:08.212848" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:08.615354" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:08.617812" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:08.007587" elapsed="0.615560">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:10:08.624259" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:08.623367" elapsed="0.000991"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:08.624630" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:08.624420" elapsed="0.000388"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:10:08.623321" elapsed="0.001525"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:08.625022" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:08.625430" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:10:08.625223" elapsed="0.000293"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:10:08.625133" elapsed="0.000423"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:10:08.006717" elapsed="0.618987">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:10.646927" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:10.849486" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:11.252159" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:11.254606" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:10.643502" elapsed="0.614597">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:10:11.258812" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:11.258331" elapsed="0.000573"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:11.259147" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:11.258944" elapsed="0.000285"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:10:11.258286" elapsed="0.000984"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:11.259524" elapsed="0.000033"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:11.259912" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:10:11.259727" elapsed="0.000265"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:10:11.259638" elapsed="0.000392"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:10:10.640296" elapsed="0.619882">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:13.277691" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:13.478930" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:13.881446" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:13.884432" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:13.273833" elapsed="0.614081">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:10:13.888654" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:13.888113" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:13.889107" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:10:13.888873" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:10:13.888073" elapsed="0.001151"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:13.889419" elapsed="0.000033"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:13.889925" elapsed="0.000037"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:10:13.889622" elapsed="0.000392"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:10:13.889532" elapsed="0.000522"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:10:13.272985" elapsed="0.617250">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:10:13.890460" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:10:02.736824" elapsed="11.153831">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:13.890944" elapsed="0.000038"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:13.891188" elapsed="0.000037"/>
</kw>
<doc>Get RESTCONF Topology and validate the result.</doc>
<status status="FAIL" start="2026-04-17T03:10:02.736276" elapsed="11.155249">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s2-t2" name="List all the links" line="31">
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.893154" level="INFO">${body1} = {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:2'}</msg>
<var>${body1}</var>
<arg>dest-node=openflow:1</arg>
<arg>dest-tp=openflow:1:2</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.892475" elapsed="0.000721"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.894004" level="INFO">${body2} = {'source-node': 'openflow:3', 'source-tp': 'openflow:3:3'}</msg>
<var>${body2}</var>
<arg>source-node=openflow:3</arg>
<arg>source-tp=openflow:3:3</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.893475" elapsed="0.000570"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.894908" level="INFO">${link2} = {'link-id': 'openflow:3:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:2'}, 'source': {'source-node': 'openflow:3', 'source-tp': 'openflow:3:3'}}</msg>
<var>${link2}</var>
<arg>link-id=openflow:3:3</arg>
<arg>destination=${body1}</arg>
<arg>source=${body2}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.894264" elapsed="0.000684"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.895666" level="INFO">${link2} = {'link-id': 'openflow:3:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:2'}, 'source': {'source-node': 'openflow:3', 'source-tp': 'openflow:3:3'}}</msg>
<arg>${link2}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:10:13.895172" elapsed="0.000560"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.896380" level="INFO">${body1} = {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}</msg>
<var>${body1}</var>
<arg>dest-node=openflow:1</arg>
<arg>dest-tp=openflow:1:1</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.895933" elapsed="0.000506"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.897093" level="INFO">${body2} = {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}</msg>
<var>${body2}</var>
<arg>source-node=openflow:2</arg>
<arg>source-tp=openflow:2:3</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.896652" elapsed="0.000479"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.898105" level="INFO">${link1} = {'link-id': 'openflow:2:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}, 'source': {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}}</msg>
<var>${link1}</var>
<arg>link-id=openflow:2:3</arg>
<arg>destination=${body1}</arg>
<arg>source=${body2}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.897338" elapsed="0.000798"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.898655" level="INFO">${link1} = {'link-id': 'openflow:2:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}, 'source': {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}}</msg>
<arg>${link1}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:10:13.898304" elapsed="0.000398"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.899167" level="INFO">${body1} = {'dest-node': 'openflow:3', 'dest-tp': 'openflow:3:3'}</msg>
<var>${body1}</var>
<arg>dest-node=openflow:3</arg>
<arg>dest-tp=openflow:3:3</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.898848" elapsed="0.000347"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.899740" level="INFO">${body2} = {'source-node': 'openflow:1', 'source-tp': 'openflow:1:2'}</msg>
<var>${body2}</var>
<arg>source-node=openflow:1</arg>
<arg>source-tp=openflow:1:2</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.899416" elapsed="0.000351"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.900354" level="INFO">${link4} = {'link-id': 'openflow:1:2', 'destination': {'dest-node': 'openflow:3', 'dest-tp': 'openflow:3:3'}, 'source': {'source-node': 'openflow:1', 'source-tp': 'openflow:1:2'}}</msg>
<var>${link4}</var>
<arg>link-id=openflow:1:2</arg>
<arg>destination=${body1}</arg>
<arg>source=${body2}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.899920" elapsed="0.000478"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.900906" level="INFO">${link4} = {'link-id': 'openflow:1:2', 'destination': {'dest-node': 'openflow:3', 'dest-tp': 'openflow:3:3'}, 'source': {'source-node': 'openflow:1', 'source-tp': 'openflow:1:2'}}</msg>
<arg>${link4}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:10:13.900558" elapsed="0.000393"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.901443" level="INFO">${body1} = {'dest-node': 'openflow:2', 'dest-tp': 'openflow:2:3'}</msg>
<var>${body1}</var>
<arg>dest-node=openflow:2</arg>
<arg>dest-tp=openflow:2:3</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.901113" elapsed="0.000359"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.902034" level="INFO">${body2} = {'source-node': 'openflow:1', 'source-tp': 'openflow:1:1'}</msg>
<var>${body2}</var>
<arg>source-node=openflow:1</arg>
<arg>source-tp=openflow:1:1</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.901623" elapsed="0.000440"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.902693" level="INFO">${link3} = {'link-id': 'openflow:1:1', 'destination': {'dest-node': 'openflow:2', 'dest-tp': 'openflow:2:3'}, 'source': {'source-node': 'openflow:1', 'source-tp': 'openflow:1:1'}}</msg>
<var>${link3}</var>
<arg>link-id=openflow:1:1</arg>
<arg>destination=${body1}</arg>
<arg>source=${body2}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:10:13.902251" elapsed="0.000470"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.903574" level="INFO">${link3} = {'link-id': 'openflow:1:1', 'destination': {'dest-node': 'openflow:2', 'dest-tp': 'openflow:2:3'}, 'source': {'source-node': 'openflow:1', 'source-tp': 'openflow:1:1'}}</msg>
<arg>${link3}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:10:13.902878" elapsed="0.000879"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:10:13.905084" level="INFO">${links} = [{'link-id': 'openflow:2:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}, 'source': {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}}, {'link-id': 'openflow:3:3', '...</msg>
<var>${links}</var>
<arg>${link1}</arg>
<arg>${link2}</arg>
<arg>${link3}</arg>
<arg>${link4}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:10:13.904216" elapsed="0.000912"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:13.910738" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:14.112261" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:14.515643" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:14.518210" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:13.906928" elapsed="0.616870">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:14.524314" elapsed="0.000061"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:14.524977" elapsed="0.000058"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:14.525250" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:14.525497" elapsed="0.000031"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:14.525725" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:14.525959" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:14.526759" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:14.526582" elapsed="0.000261"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:14.526077" elapsed="0.000815"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:13.906360" elapsed="0.620788">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:16.534106" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:16.735866" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:17.139122" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:17.141746" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:16.529199" elapsed="0.618284">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:17.148013" elapsed="0.000072"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:17.148688" elapsed="0.000064"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:17.149157" elapsed="0.000068"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:17.149641" elapsed="0.000056"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:17.150030" elapsed="0.000047"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:17.150289" elapsed="0.000027"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:17.150616" elapsed="0.000026"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:17.150479" elapsed="0.000200"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:17.150388" elapsed="0.000321"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:16.528173" elapsed="0.622655">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:19.157795" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:19.359924" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:19.762814" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:19.765468" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:19.152753" elapsed="0.618776">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:19.772037" elapsed="0.000066"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:19.772652" elapsed="0.000064"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:19.773115" elapsed="0.000055"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:19.773370" elapsed="0.000038"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:19.773611" elapsed="0.000022"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:19.773767" elapsed="0.000021"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:19.774033" elapsed="0.000022"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:19.773915" elapsed="0.000176"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:19.773847" elapsed="0.000273"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:19.151790" elapsed="0.622437">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:21.780774" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:21.982546" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:22.385678" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:22.388255" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:21.776144" elapsed="0.617300">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:22.393961" elapsed="0.000064"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:22.394548" elapsed="0.000059"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:22.394908" elapsed="0.000045"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:22.395238" elapsed="0.000046"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:22.395608" elapsed="0.000046"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:22.395990" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:22.396496" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:22.396300" elapsed="0.000251"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:22.396164" elapsed="0.000417"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:21.775184" elapsed="0.621510">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:24.404233" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:24.607094" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.011352" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.013837" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:24.398697" elapsed="0.618587">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.017721" elapsed="0.000044"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.018100" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.018333" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.018572" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.018790" elapsed="0.000028"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.019004" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.019376" elapsed="0.000058"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:25.019214" elapsed="0.000275"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:25.019125" elapsed="0.000405"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:24.397663" elapsed="0.622009">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:10:25.019808" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Verify Links</arg>
<arg>${links}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:10:13.905379" elapsed="11.114568">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>List all the links in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:10:13.891857" elapsed="11.128352">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s2-t3" name="Link Down" line="52">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:10:25.024700" level="INFO">link s1 s2 down</msg>
<arg>link s1 s2 down</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:10:25.021071" elapsed="0.003699"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:10:25.027856" level="INFO">mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:10:25.024919" elapsed="0.002993"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:10:25.028541" level="INFO">${links} = [{'link-id': 'openflow:3:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:2'}, 'source': {'source-node': 'openflow:3', 'source-tp': 'openflow:3:3'}}, {'link-id': 'openflow:1:2', '...</msg>
<var>${links}</var>
<arg>${link2}</arg>
<arg>${link4}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:10:25.028057" elapsed="0.000514"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:25.032306" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.233994" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.636471" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.639256" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:25.029655" elapsed="0.613858">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.644033" elapsed="0.000061"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.644567" elapsed="0.000053"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.644837" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.645054" elapsed="0.000050"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.645310" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.645604" elapsed="0.000036"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:25.646041" elapsed="0.000049"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:25.645865" elapsed="0.000289"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:25.645732" elapsed="0.000476"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:25.029312" elapsed="0.617058">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:27.653969" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:27.856491" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:28.259206" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:28.262000" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:27.648109" elapsed="0.617926">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:28.266428" elapsed="0.000042"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:28.266802" elapsed="0.000040"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:28.267068" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:28.267286" elapsed="0.000028"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:28.267537" elapsed="0.000037"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:28.267797" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:28.268163" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:28.268004" elapsed="0.000237"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:28.267909" elapsed="0.000373"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:27.647162" elapsed="0.621291">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:30.275661" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:30.477669" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:30.880289" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:30.883047" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:30.270470" elapsed="0.618039">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:30.889008" elapsed="0.000060"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:30.889575" elapsed="0.000060"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:30.889940" elapsed="0.000046"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:30.890274" elapsed="0.000046"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:30.890648" elapsed="0.000045"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:30.890982" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:30.891645" elapsed="0.000070"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:30.891353" elapsed="0.000417"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:30.891147" elapsed="0.000655"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:30.269520" elapsed="0.622387">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:32.899204" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:33.100994" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:33.503728" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:33.506328" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:32.894523" elapsed="0.617437">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:33.512539" elapsed="0.000065"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:33.513128" elapsed="0.000064"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:33.513613" elapsed="0.000053"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:33.513849" elapsed="0.000026"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:33.514008" elapsed="0.000021"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:33.514158" elapsed="0.000019"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:33.514441" elapsed="0.000022"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:33.514309" elapsed="0.000188"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:33.514238" elapsed="0.000288"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:32.893559" elapsed="0.621078">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:35.521618" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:35.723225" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:36.126095" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:36.128932" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:35.516689" elapsed="0.620227">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:36.137261" elapsed="0.000037"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:36.137581" elapsed="0.000030"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:36.137761" elapsed="0.000022"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:36.137919" elapsed="0.000021"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:36.138076" elapsed="0.000021"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:36.138237" elapsed="0.000024"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:36.138553" elapsed="0.000023"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:36.138424" elapsed="0.000188"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:36.138339" elapsed="0.000301"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:35.515651" elapsed="0.623106">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:38.144108" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:38.346276" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:38.749952" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:38.753822" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:38.140156" elapsed="0.618888">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:38.759458" elapsed="0.000045"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:38.759869" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:38.760112" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:38.760334" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:38.760584" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:38.760891" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:38.761275" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:38.761105" elapsed="0.000251"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:38.761010" elapsed="0.000408"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:38.139487" elapsed="0.622096">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:40.771928" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:40.973688" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:41.376350" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:41.379640" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:40.768214" elapsed="0.615929">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:41.384519" elapsed="0.000044"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:41.384893" elapsed="0.000039"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:41.385136" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:41.385399" elapsed="0.000033"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:41.385635" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:41.385861" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:41.386229" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:41.386063" elapsed="0.000248"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:41.385973" elapsed="0.000378"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:40.767066" elapsed="0.619452">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:43.394470" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:43.596152" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:43.998843" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:44.000897" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:43.390005" elapsed="0.614764">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:44.005223" elapsed="0.000044"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:44.005673" elapsed="0.000040"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:44.005905" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:44.006126" elapsed="0.000028"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:44.006342" elapsed="0.000027"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:44.006583" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:44.007000" elapsed="0.000034"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:44.006806" elapsed="0.000280"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:44.006711" elapsed="0.000420"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:43.389081" elapsed="0.618208">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:46.024422" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:46.226734" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:46.629535" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:46.632865" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:46.019510" elapsed="0.618248">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:46.638198" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:46.638636" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:46.638884" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:46.639113" elapsed="0.000032"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:46.639408" elapsed="0.000037"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:46.639669" elapsed="0.000035"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:46.640081" elapsed="0.000032"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:46.639905" elapsed="0.000261"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:46.639805" elapsed="0.000406"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:46.018072" elapsed="0.622304">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:48.647851" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:48.849772" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:49.252687" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:49.255237" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:48.642346" elapsed="0.618668">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:49.261492" elapsed="0.000050"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:49.261902" elapsed="0.000040"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:49.262177" elapsed="0.000040"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:49.262486" elapsed="0.000038"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:49.262787" elapsed="0.000034"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:49.263030" elapsed="0.000038"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:49.263506" elapsed="0.000035"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:49.263297" elapsed="0.000300"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:49.263181" elapsed="0.000458"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:48.641264" elapsed="0.622548">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:51.270834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:51.473733" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:51.876691" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:51.879108" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:51.265774" elapsed="0.618851">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:51.885027" elapsed="0.000047"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:51.885486" elapsed="0.000042"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:51.885727" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:51.885940" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:51.886157" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:51.886370" elapsed="0.000053"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:51.886783" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:51.886624" elapsed="0.000237"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:51.886532" elapsed="0.000369"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:51.264862" elapsed="0.622193">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:53.893362" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:54.095346" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:54.498432" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:54.501062" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:53.888802" elapsed="0.616295">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:54.505450" elapsed="0.000047"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:54.505817" elapsed="0.000039"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:54.506049" elapsed="0.000057"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:54.506298" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:54.506621" elapsed="0.000036"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:54.506852" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:54.507208" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:54.507049" elapsed="0.000237"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:54.506962" elapsed="0.000364"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:53.887938" elapsed="0.619564">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:56.513222" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:56.715006" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:57.117706" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:57.119937" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:56.508982" elapsed="0.614918">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:57.124243" elapsed="0.000052"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:57.124683" elapsed="0.000043"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:57.124961" elapsed="0.000034"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:57.125187" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:57.125501" elapsed="0.000033"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:57.125929" elapsed="0.000037"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:57.126305" elapsed="0.000032"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:57.126144" elapsed="0.000283"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:57.126054" elapsed="0.000417"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:56.508266" elapsed="0.618360">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:10:59.132154" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:59.334038" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:59.736792" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:59.739695" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:10:59.128522" elapsed="0.617261">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:59.746462" elapsed="0.000080"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:10:59.746901" elapsed="0.000030"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:59.747074" elapsed="0.000021"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:59.747227" elapsed="0.000020"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:59.747382" elapsed="0.000035"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:59.747549" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:10:59.747814" elapsed="0.000032"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:10:59.747698" elapsed="0.000184"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:10:59.747629" elapsed="0.000281"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:10:59.127531" elapsed="0.620506">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:01.754525" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:01.956003" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:02.359077" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:02.361243" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:01.749906" elapsed="0.614804">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:02.365143" elapsed="0.000043"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:02.365539" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:02.365787" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:02.366011" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:02.366239" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:02.366491" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:02.366865" elapsed="0.000032"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:02.366695" elapsed="0.000255"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:02.366606" elapsed="0.000386"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:01.748918" elapsed="0.618224">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:04.373496" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:04.577634" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:04.980037" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:04.982569" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:04.368554" elapsed="0.618624">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:04.987553" elapsed="0.000041"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:04.987932" elapsed="0.000040"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:04.988162" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:04.988372" elapsed="0.000049"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:04.988610" elapsed="0.000028"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:04.988819" elapsed="0.000034"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:04.989203" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:04.989026" elapsed="0.000253"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:04.988939" elapsed="0.000378"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:04.367846" elapsed="0.621637">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:06.996528" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:07.197890" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:07.600079" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:07.604022" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:06.991813" elapsed="0.615836">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:07.607994" elapsed="0.000063"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:07.608417" elapsed="0.000042"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:07.608664" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:07.608890" elapsed="0.000032"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:07.609169" elapsed="0.000033"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:07.609423" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:07.609802" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:07.609635" elapsed="0.000248"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:07.609541" elapsed="0.000386"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:06.990264" elapsed="0.619817">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:09.617073" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:09.818931" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:10.221777" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:10.224077" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:09.612095" elapsed="0.616432">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:10.228966" elapsed="0.000047"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:10.229333" elapsed="0.000038"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:10.229576" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:10.229784" elapsed="0.000029"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:10.229994" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:10.230209" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:10.230564" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:10.230415" elapsed="0.000221"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:10.230313" elapsed="0.000360"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:09.611090" elapsed="0.619727">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:12.237849" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:12.439850" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:12.842518" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:12.844744" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:12.233135" elapsed="0.614934">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:12.848442" elapsed="0.000042"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:12.848810" elapsed="0.000038"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:12.849037" elapsed="0.000028"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:12.849246" elapsed="0.000028"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:12.849480" elapsed="0.000028"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:12.849691" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:12.850041" elapsed="0.000036"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:12.849886" elapsed="0.000239"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:12.849799" elapsed="0.000365"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:12.232263" elapsed="0.618046">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:14.856907" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:15.059023" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:15.461802" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:15.464243" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:14.851955" elapsed="0.618158">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:15.470628" elapsed="0.000063"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:15.471169" elapsed="0.000061"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:15.471567" elapsed="0.000047"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:15.471903" elapsed="0.000045"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:15.472244" elapsed="0.000044"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:15.472757" elapsed="0.000055"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:15.473508" elapsed="0.000050"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:15.473188" elapsed="0.000451"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:15.472947" elapsed="0.000753"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:14.851074" elapsed="0.622852">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:17.480526" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:17.682150" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:18.085057" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:18.087899" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:17.475872" elapsed="0.617483">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:18.093755" elapsed="0.000060"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:18.094164" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:18.094450" elapsed="0.000044"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:18.094701" elapsed="0.000031"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:18.095006" elapsed="0.000044"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:18.095426" elapsed="0.000045"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:18.095922" elapsed="0.000043"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:18.095697" elapsed="0.000337"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:18.095581" elapsed="0.000510"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:17.474926" elapsed="0.621363">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:20.104155" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:20.306179" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:20.709775" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:20.712711" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:20.098500" elapsed="0.619546">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:20.718632" elapsed="0.000058"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:20.719151" elapsed="0.000056"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:20.719555" elapsed="0.000063"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:20.719935" elapsed="0.000048"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:20.720277" elapsed="0.000045"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:20.720713" elapsed="0.000048"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:20.721269" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:20.721019" elapsed="0.000354"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:20.720887" elapsed="0.000550"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:20.097349" elapsed="0.624245">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:22.728520" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:22.930649" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:23.332925" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:23.335550" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:22.723315" elapsed="0.615460">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:23.339136" elapsed="0.000042"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:23.339536" elapsed="0.000037"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:23.339760" elapsed="0.000028"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:23.339971" elapsed="0.000028"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:23.340191" elapsed="0.000027"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:23.340417" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:23.340810" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:23.340652" elapsed="0.000236"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:23.340530" elapsed="0.000397"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:22.722445" elapsed="0.618630">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:25.346251" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:25.548218" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:25.951100" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:25.953746" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:25.342312" elapsed="0.617326">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.959913" elapsed="0.000030"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.960189" elapsed="0.000027"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.960355" elapsed="0.000021"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.960525" elapsed="0.000021"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.960684" elapsed="0.000019"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.960856" elapsed="0.000027"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.961134" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:25.961018" elapsed="0.000179"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:25.960950" elapsed="0.000275"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:25.341721" elapsed="0.619631">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:11:25.961495" level="FAIL">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>60s</arg>
<arg>2s</arg>
<arg>Verify Links</arg>
<arg>${links}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:10:25.028740" elapsed="60.932885">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>sh ovs-vsctl find Interface name="s1-eth1"</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.961854" elapsed="0.000032"/>
</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-04-17T03:11:25.962069" elapsed="0.000029"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.962278" elapsed="0.000030"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>sh ovs-vsctl find Interface name="s1-eth2"</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.962494" elapsed="0.000038"/>
</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-04-17T03:11:25.962709" elapsed="0.000029"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:25.962916" elapsed="0.000028"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-04-17T03:10:25.020548" elapsed="60.942611">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s2-t4" name="Link Up" line="69">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:11:25.967159" level="INFO">link s1 s2 up</msg>
<arg>link s1 s2 up</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:11:25.964005" elapsed="0.003279"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:11:25.972027" level="INFO">mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:11:25.967482" elapsed="0.004604"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:11:25.972791" level="INFO">${links} = [{'link-id': 'openflow:2:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}, 'source': {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}}, {'link-id': 'openflow:3:3', '...</msg>
<var>${links}</var>
<arg>${link1}</arg>
<arg>${link2}</arg>
<arg>${link3}</arg>
<arg>${link4}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:11:25.972231" elapsed="0.000592"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:25.976372" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:26.177960" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:26.580975" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:26.583378" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:25.973911" elapsed="0.614989">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:26.589437" elapsed="0.000068"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:26.590005" elapsed="0.000061"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:26.590429" elapsed="0.000053"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:26.590800" elapsed="0.000049"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:26.591194" elapsed="0.000067"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:26.591995" elapsed="0.000075"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:26.592698" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:26.592510" elapsed="0.000275"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:26.592259" elapsed="0.000570"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:25.973580" elapsed="0.619404">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:28.599422" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:28.801076" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:29.203365" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:29.205962" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:28.594881" elapsed="0.616703">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:29.211961" elapsed="0.000044"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:29.212354" elapsed="0.000064"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:29.212652" elapsed="0.000043"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:29.212911" elapsed="0.000091"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:29.213261" elapsed="0.000035"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:29.213553" elapsed="0.000035"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:29.213977" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:29.213806" elapsed="0.000346"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:29.213701" elapsed="0.000499"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:28.593822" elapsed="0.620543">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:31.224668" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:31.426488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:31.829095" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:31.831668" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:31.216255" elapsed="0.621959">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:31.838829" elapsed="0.000053"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:31.839279" elapsed="0.000039"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:31.839531" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:31.839744" elapsed="0.000029"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:31.839961" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:31.840174" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:31.840551" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:31.840373" elapsed="0.000257"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:31.840284" elapsed="0.000393"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:31.215261" elapsed="0.625615">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:33.848225" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:34.050000" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:34.452902" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:34.455342" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:33.843007" elapsed="0.617878">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:34.461252" elapsed="0.000044"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:34.461672" elapsed="0.000042"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:34.462004" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:34.462227" elapsed="0.000029"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:34.462479" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:34.462721" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:34.463099" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:34.462933" elapsed="0.000247"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:34.462842" elapsed="0.000379"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:33.841877" elapsed="0.621502">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:36.470678" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:36.672136" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.074696" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.077277" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:36.465202" elapsed="0.617587">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.083326" elapsed="0.000099"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.083908" elapsed="0.000038"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.084145" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.084357" elapsed="0.000047"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.084596" elapsed="0.000028"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.084805" elapsed="0.000027"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.085217" elapsed="0.000034"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:11:37.085008" elapsed="0.000298"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:11:37.084914" elapsed="0.000433"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:11:36.464211" elapsed="0.621305">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:11:37.085652" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Verify Links</arg>
<arg>${links}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:11:25.972991" elapsed="11.112802">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-04-17T03:11:25.963480" elapsed="11.122568">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:11:37.086696" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:11:37.086586" elapsed="0.000214"/>
</kw>
<doc>Test suite for RESTCONF Topology</doc>
<status status="FAIL" start="2026-04-17T03:10:02.695751" elapsed="94.391086"/>
</suite>
<suite id="s1-s1-s3" name="030 Restconf Statistics" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10/030_restconf_statistics.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-04-17T03:11:37.123964" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c6ed750&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-04-17T03:11:37.123459" elapsed="0.000718"/>
</kw>
<test id="s1-s1-s3-t1" name="Get Stats for all nodes" line="20">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:37.134485" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.335939" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.738714" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.742014" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:37.131511" elapsed="0.616473">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:11:37.749778" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:37.748347" elapsed="0.001581"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.750120" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:37.749959" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:11:37.748278" elapsed="0.001935"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.750375" elapsed="0.000047"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:37.750735" elapsed="0.000027"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:11:37.750577" elapsed="0.000234"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:11:37.750507" elapsed="0.000360"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:11:37.131051" elapsed="0.619951">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:39.767447" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:39.968985" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:40.371786" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:40.373723" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:39.763794" elapsed="0.614737">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:11:40.379320" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:40.378875" elapsed="0.000560"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:40.379664" elapsed="0.001811"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:40.379472" elapsed="0.002064"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:11:40.378759" elapsed="0.002808"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:40.381739" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:40.382135" elapsed="0.000037"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:11:40.381942" elapsed="0.000283"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:11:40.381846" elapsed="0.000427"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:11:39.763038" elapsed="0.619433">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:42.398051" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:42.600015" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:43.002632" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:43.005464" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:42.394243" elapsed="0.615889">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:11:43.010731" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:43.010314" elapsed="0.000509"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:43.011053" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:43.010862" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:11:43.010273" elapsed="0.000893"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:43.011330" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:43.011709" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:11:43.011537" elapsed="0.000250"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:11:43.011454" elapsed="0.000372"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:11:42.393398" elapsed="0.618568">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:45.025844" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:45.227459" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:45.629971" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:45.632622" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:45.022978" elapsed="0.614471">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:11:45.638338" elapsed="0.000191"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:45.637744" elapsed="0.000853"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:45.638908" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:45.638651" elapsed="0.000361"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:11:45.637681" elapsed="0.001375"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:45.639275" elapsed="0.000038"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:45.639742" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:11:45.639543" elapsed="0.000283"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:11:45.639429" elapsed="0.000437"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:11:45.022315" elapsed="0.617707">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:47.656037" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:47.857887" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.260346" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.262868" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:47.653236" elapsed="0.613258">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:11:48.267129" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:48.266694" elapsed="0.000525"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:48.267476" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:11:48.267258" elapsed="0.000298"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:11:48.266650" elapsed="0.000937"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:48.267752" elapsed="0.000053"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:48.268211" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:11:48.268023" elapsed="0.000270"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:11:48.267909" elapsed="0.000423"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:11:47.652690" elapsed="0.615902">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:11:48.268791" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:11:37.124752" elapsed="11.144204">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the stats for all nodes</doc>
<status status="FAIL" start="2026-04-17T03:11:37.124268" elapsed="11.144948">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s3-t2" name="Get Stats for node 1" line="29">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:48.278955" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.480568" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.883449" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.885830" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:48.276029" elapsed="0.614783">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:48.891321" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:48.891708" elapsed="0.000046"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:11:48.275598" elapsed="0.616383">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:50.903561" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:51.105059" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:51.507781" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:51.510432" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:50.899302" elapsed="0.614407">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:51.514075" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:51.514306" elapsed="0.000030"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:11:50.898451" elapsed="0.616058">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:53.528269" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:53.729856" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:54.132300" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:54.135000" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:53.523597" elapsed="0.615869">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:54.139921" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:54.140165" elapsed="0.000031"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:11:53.522829" elapsed="0.617523">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:56.153766" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:56.355988" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:56.758792" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:56.761217" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:56.149238" elapsed="0.617000">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:56.766784" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:56.767146" elapsed="0.000048"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:11:56.148272" elapsed="0.619178">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:58.780149" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:58.981747" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:59.384356" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:59.387584" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:58.776462" elapsed="0.616614">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:59.393704" elapsed="0.000075"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:11:59.394057" elapsed="0.000046"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:11:58.775292" elapsed="0.619076">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:11:59.394747" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check Nodes Stats</arg>
<arg>openflow%3A1</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:11:48.270308" elapsed="11.124653">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-04-17T03:11:48.269607" elapsed="11.125745">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s3-t3" name="Get Stats for node 2" line="33">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:11:59.405553" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:11:59.606713" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:00.008975" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:00.011297" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:11:59.402201" elapsed="0.614237">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:00.016869" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:00.017106" elapsed="0.000032"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:11:59.401703" elapsed="0.615604">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:02.029831" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:02.231169" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:02.633927" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:02.636536" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:02.026781" elapsed="0.612171">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:02.639283" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:02.639475" elapsed="0.000022"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:02.025617" elapsed="0.613995">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:04.648980" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:04.850588" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:05.253025" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:05.255683" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:04.645542" elapsed="0.614717">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:05.260840" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:05.261191" elapsed="0.000046"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:04.644898" elapsed="0.616543">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:07.273085" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:07.474469" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:07.877455" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:07.880228" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:07.269011" elapsed="0.617002">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:07.886323" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:07.886511" elapsed="0.000022"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:07.268185" elapsed="0.618471">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:09.896506" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:10.097723" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:10.500266" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:10.502829" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:09.892988" elapsed="0.615091">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:10.508751" elapsed="0.000075"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:10.509097" elapsed="0.000034"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:09.892432" elapsed="0.616873">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:12:10.509488" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check Nodes Stats</arg>
<arg>openflow%3A2</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:11:59.396669" elapsed="11.112980">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-04-17T03:11:59.395852" elapsed="11.114071">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s3-t4" name="Get Stats for node 3" line="37">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:10.519656" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:10.721201" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:11.123783" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:11.125918" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:10.516290" elapsed="0.612911">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:11.129573" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:11.129797" elapsed="0.000029"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:10.515758" elapsed="0.614223">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:13.140567" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:13.341966" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:13.744839" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:13.747140" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:13.136811" elapsed="0.613766">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:13.751035" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:13.751282" elapsed="0.000030"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:13.136227" elapsed="0.615289">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:15.761991" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:15.963576" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:16.365706" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:16.367952" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:15.758520" elapsed="0.614842">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:16.373892" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:16.374247" elapsed="0.000047"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:15.757962" elapsed="0.616586">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:18.387938" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:18.589296" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:18.991958" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:18.994655" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:18.384959" elapsed="0.615423">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:19.000832" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:19.001082" elapsed="0.000033"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:18.384516" elapsed="0.616752">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:21.015245" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:21.216866" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:21.619846" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:21.622238" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:21.009982" elapsed="0.617660">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:21.628150" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:21.628541" elapsed="0.000049"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:12:21.009066" elapsed="0.619773">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:12:21.629106" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check Nodes Stats</arg>
<arg>openflow%3A3</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:12:10.510864" elapsed="11.118464">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-04-17T03:12:10.510245" elapsed="11.119541">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:12:21.631034" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:12:21.630801" elapsed="0.000417"/>
</kw>
<doc>Test suite for RESTCONF statistics</doc>
<status status="FAIL" start="2026-04-17T03:11:37.087497" elapsed="44.543800"/>
</suite>
<suite id="s1-s1-s4" name="040 Restconf Frm" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF10/040_restconf_frm.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-04-17T03:12:21.665646" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c7fe850&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-04-17T03:12:21.665182" elapsed="0.000662"/>
</kw>
<test id="s1-s1-s4-t1" name="Add a flow - Output to physical port#" line="21">
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:21.669163" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:21.870678" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:22.273328" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:22.276219" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=152</arg>
<arg>headers=${HEADERS_XML}</arg>
<arg>data=${BODY2}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:21.666367" elapsed="0.615418">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Push a flow through REST-API</doc>
<status status="FAIL" start="2026-04-17T03:12:21.665934" elapsed="0.616422">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s4-t2" name="Verify after adding flow config - Output to physical port#" line="29">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:22.287094" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:22.488600" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:22.891478" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:22.893741" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0?content=config</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:22.284381" elapsed="0.612084">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>152</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:22.896767" elapsed="0.000038"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:12:22.282888" elapsed="0.614115">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s4-t3" name="Verify after adding flow operational - Output to physical port#" line="37">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:12:22.898666" level="INFO">${elements} = ['10.0.20.1']</msg>
<var>${elements}</var>
<arg>10.0.20.1</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:12:22.898159" elapsed="0.000545"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:22.910221" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:23.112045" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:23.514741" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:23.517614" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:22.906262" elapsed="0.617189">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:23.524445" elapsed="0.000100"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:23.523824" elapsed="0.000757"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:23.524765" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:23.524611" elapsed="0.000210"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:23.523689" elapsed="0.001154"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:23.524976" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:23.525288" elapsed="0.000027"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:23.525151" elapsed="0.000210"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:23.525081" elapsed="0.000332"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:22.905286" elapsed="0.620280">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:25.535734" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:25.738099" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:26.141324" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:26.143329" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:25.531629" elapsed="0.614411">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:26.146527" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:26.146193" elapsed="0.000400"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:26.146765" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:26.146622" elapsed="0.000196"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:26.146161" elapsed="0.000679"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:26.146956" elapsed="0.000021"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:26.147225" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:26.147097" elapsed="0.000186"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:26.147032" elapsed="0.000295"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:25.530763" elapsed="0.616690">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:28.160463" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:28.362548" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:28.766626" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:28.769441" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:28.156148" elapsed="0.619178">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:28.776280" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:28.775658" elapsed="0.000806"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:28.776859" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:28.776529" elapsed="0.000460"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:28.775596" elapsed="0.001445"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:28.777314" elapsed="0.000050"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:28.778003" elapsed="0.000054"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:28.777658" elapsed="0.000485"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:28.777520" elapsed="0.000688"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:28.155071" elapsed="0.623424">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:30.791623" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:30.993212" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:31.397965" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:31.401182" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:30.787780" elapsed="0.618998">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:31.408348" elapsed="0.000115"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:31.407662" elapsed="0.000887"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:31.409043" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:31.408701" elapsed="0.000460"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:31.407591" elapsed="0.001592"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:31.409301" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:31.410048" elapsed="0.000023"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:31.409475" elapsed="0.000634"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:31.409382" elapsed="0.000757"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:30.786921" elapsed="0.623349">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:33.442777" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:33.645643" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:34.048744" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:34.051481" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:33.436674" elapsed="0.622241">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:34.060123" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:34.059633" elapsed="0.000583"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:34.060505" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:34.060257" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:34.059580" elapsed="0.001045"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:34.060837" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:34.061226" elapsed="0.000058"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:34.061042" elapsed="0.000298"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:34.060949" elapsed="0.000430"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:33.433872" elapsed="0.627699">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:12:34.061734" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:12:22.898932" elapsed="11.162949">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:12:22.897492" elapsed="11.164670">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s4-t4" name="Remove a flow - Output to physical port#" line="47">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:34.066771" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:34.268679" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:34.671765" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:34.674511" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0/flow=152</arg>
<arg>expected_status=204</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:34.063109" elapsed="0.616757">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Remove a flow</doc>
<status status="FAIL" start="2026-04-17T03:12:34.062520" elapsed="0.617845">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s4-t5" name="Verify after deleting flow config - Output to physical port#" line="54">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:34.685458" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:34.887009" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:35.289673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:35.291926" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0?content=config</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:34.682505" elapsed="0.643863">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>152</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:35.329692" elapsed="0.000065"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:12:34.681018" elapsed="0.649511">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s1-s4-t6" name="Verify after deleting flow operational - Output to physical port#" line="63">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:12:35.333453" level="INFO">${elements} = ['10.0.20.1']</msg>
<var>${elements}</var>
<arg>10.0.20.1</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:12:35.331987" elapsed="0.001505"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:35.345538" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:35.547719" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:35.950608" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:35.953246" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:35.341995" elapsed="0.616221">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:35.958967" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:35.958488" elapsed="0.000572"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:35.959306" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:35.959100" elapsed="0.000286"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:35.958434" elapsed="0.001002"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:12:35.959661" elapsed="0.000035"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:12:35.959598" elapsed="0.000137"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:35.959576" elapsed="0.000189"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:12:35.959519" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:35.959495" elapsed="0.000378"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:35.960109" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:35.960567" elapsed="0.000047"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:35.960334" elapsed="0.000342"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:35.960238" elapsed="0.000486"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:12:35.341436" elapsed="0.619544">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:37.975287" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:38.177053" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:38.580169" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:38.582969" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:37.971138" elapsed="0.643120">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:38.615431" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:38.615002" elapsed="0.000503"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:38.615709" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:38.615535" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:38.614959" elapsed="0.000829"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:12:38.615987" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:12:38.615947" elapsed="0.000084"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:38.615932" elapsed="0.000120"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:12:38.615888" elapsed="0.000186"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:38.615830" elapsed="0.000264"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:38.616213" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:38.616525" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:38.616365" elapsed="0.000216"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:38.616293" elapsed="0.000318"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:12:37.970111" elapsed="0.646627">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:40.658319" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:40.860086" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:41.262956" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:41.266704" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:40.653329" elapsed="0.617430">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:41.273580" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:41.273077" elapsed="0.000612"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:41.273960" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:41.273729" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:41.273023" elapsed="0.001052"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:12:41.274298" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:12:41.274243" elapsed="0.000114"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:41.274222" elapsed="0.000191"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:12:41.274160" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:41.274135" elapsed="0.000344"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:41.274655" elapsed="0.000033"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:41.275040" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:41.274854" elapsed="0.000271"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:41.274766" elapsed="0.000398"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:12:40.652606" elapsed="0.622719">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:43.292591" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:43.494140" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:43.897066" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:43.901454" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:43.289089" elapsed="0.616975">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:43.906745" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:43.906278" elapsed="0.000562"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:43.907096" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:43.906879" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:43.906234" elapsed="0.000980"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:12:43.907674" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:12:43.907378" elapsed="0.000359"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:43.907358" elapsed="0.000411"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:12:43.907297" elapsed="0.000505"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:43.907274" elapsed="0.000558"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:43.908014" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:43.908496" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:43.908257" elapsed="0.000325"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:43.908166" elapsed="0.000456"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:12:43.288329" elapsed="0.620448">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:45.923978" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:46.125681" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:46.528633" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:46.531353" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:45.920977" elapsed="0.615599">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:46.537208" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:46.536779" elapsed="0.000520"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:46.537569" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:46.537336" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:46.536738" elapsed="0.000943"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:12:46.537893" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:12:46.537838" elapsed="0.000112"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:46.537818" elapsed="0.000171"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:12:46.537760" elapsed="0.000262"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:46.537737" elapsed="0.000313"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:46.538212" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:46.538630" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:46.538425" elapsed="0.000286"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:46.538318" elapsed="0.000430"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:12:45.920265" elapsed="0.618629">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:12:46.539045" level="FAIL">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements Not At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:12:35.333693" elapsed="11.205490">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:12:35.330847" elapsed="11.208664">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:12:46.541035" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:12:46.540877" elapsed="0.000275"/>
</kw>
<doc>Test suite for RESTCONF FRM</doc>
<status status="FAIL" start="2026-04-17T03:12:21.632634" elapsed="24.908569"/>
</suite>
<kw name="Stop Mininet" owner="Utils" type="TEARDOWN">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:12:46.543763" level="INFO">Stop the test on the base edition</msg>
<arg>Stop the test on the base edition</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:12:46.543288" elapsed="0.000526"/>
</kw>
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn_id}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:12:46.543963" elapsed="0.000159"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:12:46.544252" elapsed="0.000173"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:12:46.549718" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:12:46.544554" elapsed="0.005246"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:12:46.776871" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 6 links
......
*** Stopping 3 switches
s1 s2 s3 
*** Stopping 4 hosts
h1 h2 h3 h4 
*** Done
completed in 242.528 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${prompt}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:12:46.549972" elapsed="0.227131"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:12:46.777486" elapsed="0.000377"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-04-17T03:12:46.542870" elapsed="0.235093"/>
</kw>
<doc>Test suite for MD-SAL NSF</doc>
<status status="FAIL" start="2026-04-17T03:08:41.026364" elapsed="245.751655"/>
</suite>
<suite id="s1-s2" name="MD SAL NSF OF13" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13">
<kw name="Start Mininet" owner="Utils" type="SETUP">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:12:46.826714" level="INFO">Start the test on the base edition</msg>
<arg>Start the test on the base edition</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:12:46.826408" elapsed="0.000369"/>
</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-04-17T03:12:46.829350" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:46.829044" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-04-17T03:12:46.829017" elapsed="0.000441"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:12:46.829819" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:12:46.829936" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:12:46.829590" elapsed="0.000373"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:12:46.830507" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:12:46.830089" elapsed="0.000467"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:12:46.831082" level="INFO">${conn_id} = 6</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-04-17T03:12:46.830690" elapsed="0.000419"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:12:46.832020" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:12:46.832099" 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-04-17T03:12:46.831724" elapsed="0.000400"/>
</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-04-17T03:12:46.832256" elapsed="0.000356"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:12:46.833442" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:12:47.492994" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:12:47 UTC 2026

  System load:  0.0                Processes:             110
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:08:44 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:12:46.833100" elapsed="0.660073"/>
</kw>
<msg time="2026-04-17T03:12:47.493288" 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="PASS" start="2026-04-17T03:12:46.832755" elapsed="0.660625"/>
</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="PASS" start="2026-04-17T03:12:46.831360" elapsed="0.662657"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:12:47.494543" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:12:48.634707" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:12:48.635335" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:12:48.635514" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:12:47.494250" elapsed="1.141327"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:12:48.636020" elapsed="0.000716"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:12:48.637806" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:12:48.637092" elapsed="0.000855"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:12:48.638488" elapsed="0.000076"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:12:48.638132" elapsed="0.000520"/>
</branch>
<status status="PASS" start="2026-04-17T03:12:48.638079" elapsed="0.000628"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:12:48.639101" elapsed="0.000075"/>
</return>
<status status="PASS" start="2026-04-17T03:12:48.638833" elapsed="0.000423"/>
</branch>
<status status="PASS" start="2026-04-17T03:12:48.638797" elapsed="0.000515"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:12:48.639423" elapsed="0.000036"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:12:48.644979" elapsed="0.000843"/>
</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="PASS" start="2026-04-17T03:12:48.646149" elapsed="0.000475"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:12:48.646925" elapsed="0.000306"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:12:48.640155" elapsed="0.007224"/>
</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="PASS" start="2026-04-17T03:12:46.828535" elapsed="1.819133"/>
</kw>
<msg time="2026-04-17T03:12:48.647783" 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="PASS" start="2026-04-17T03:12:46.827920" elapsed="1.819930"/>
</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="PASS" start="2026-04-17T03:12:46.827359" elapsed="1.820574"/>
</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-04-17T03:12:48.650065" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:48.649794" elapsed="0.000331"/>
</branch>
<status status="PASS" start="2026-04-17T03:12:48.649772" elapsed="0.000387"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:12:48.650486" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:12:48.650647" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:12:48.650312" elapsed="0.000367"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:12:48.651237" 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.171.160" 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-04-17T03:12:48.650819" elapsed="0.000471"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:12:48.651878" level="INFO">${conn_id} = 8</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-04-17T03:12:48.651440" elapsed="0.000465"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:12:48.652827" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:12:48.652909" 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-04-17T03:12:48.652510" elapsed="0.000424"/>
</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-04-17T03:12:48.653175" elapsed="0.000362"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:12:48.716918" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:12:49.045741" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:12:47 UTC 2026

  System load:  0.0                Processes:             110
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:12:47 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:12:48.654040" elapsed="0.391899"/>
</kw>
<msg time="2026-04-17T03:12:49.046041" 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="PASS" start="2026-04-17T03:12:48.653690" elapsed="0.392442"/>
</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="PASS" start="2026-04-17T03:12:48.652102" elapsed="0.394173"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:12:49.046856" 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-04-17T03:12:49.073096" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:12:49.073618" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:12:49.073719" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:12:49.046545" elapsed="0.027226"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:12:49.074197" elapsed="0.000705"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:12:49.075900" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:12:49.075218" elapsed="0.000772"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:12:49.076499" elapsed="0.000041"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:12:49.076166" elapsed="0.000444"/>
</branch>
<status status="PASS" start="2026-04-17T03:12:49.076113" elapsed="0.000547"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:12:49.077004" elapsed="0.000070"/>
</return>
<status status="PASS" start="2026-04-17T03:12:49.076774" elapsed="0.000368"/>
</branch>
<status status="PASS" start="2026-04-17T03:12:49.076742" elapsed="0.000454"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:12:49.077267" elapsed="0.000030"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:12:49.080730" elapsed="0.000528"/>
</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="PASS" start="2026-04-17T03:12:49.081478" elapsed="0.000254"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:12:49.081905" elapsed="0.000147"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:12:49.077918" elapsed="0.004210"/>
</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="PASS" start="2026-04-17T03:12:48.649247" elapsed="0.433013"/>
</kw>
<msg time="2026-04-17T03:12:49.082343" 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="PASS" start="2026-04-17T03:12:48.648635" elapsed="0.433808"/>
</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="PASS" start="2026-04-17T03:12:48.648117" elapsed="0.434442"/>
</kw>
<status status="PASS" start="2026-04-17T03:12:46.827064" elapsed="2.255577"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:12:49.083405" level="INFO">${mininet_conn_id} = 10</msg>
<var>${mininet_conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:12:49.082839" elapsed="0.000606"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:12:49.084079" level="INFO">${mininet_conn_id} = 10</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-04-17T03:12:49.083629" elapsed="0.000509"/>
</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-04-17T03:12:49.086776" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:12:49.086975" 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-04-17T03:12:49.086209" elapsed="0.000794"/>
</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-04-17T03:12:49.087148" elapsed="0.000444"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:12:49.088451" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:12:49.431656" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:12:47 UTC 2026

  System load:  0.0                Processes:             110
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:12:48 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:12:49.088096" elapsed="0.343800"/>
</kw>
<msg time="2026-04-17T03:12:49.431999" 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="PASS" start="2026-04-17T03:12:49.087745" elapsed="0.344346"/>
</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="PASS" start="2026-04-17T03:12:49.085234" elapsed="0.346995"/>
</kw>
<msg time="2026-04-17T03:12:49.432286" 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="PASS" start="2026-04-17T03:12:49.084840" elapsed="0.347494"/>
</kw>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:12:49.084407" elapsed="0.348029"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:12:49.432860" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-04-17T03:12:49.455852" level="INFO">Command exited with return code 0.</msg>
<arg>sudo ovs-vsctl set-manager ptcp:6644</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:12:49.432690" elapsed="0.023411"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:12:49.496028" level="INFO">sudo mn --controller=remote,ip=10.30.170.85 --topo tree,2 --switch ovsk,protocols=OpenFlow13</msg>
<arg>${start}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:12:49.456532" elapsed="0.039674"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:12:49.753672" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6653
Unable to contact the remote controller at 10.30.170.85:6633
Setting remote controller to 10.30.170.85:6653
*** Adding hosts:
h1 h2 h3 h4 
*** Adding switches:
s1 s2 s3 
*** Adding links:
(s1, s2) (s1, s3) (s2, h1) (s2, h2) (s3, h3) (s3, h4) 
*** Configuring hosts
h1 h2 h3 h4 
*** Starting controller
c0 
*** Starting 3 switches
s1 s2 s3 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:12:49.496531" elapsed="0.257320"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-04-17T03:12:46.825895" elapsed="2.928080"/>
</kw>
<suite id="s1-s2-s1" name="010 Restconf Inventory" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/010_restconf_inventory.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-04-17T03:12:49.789982" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c5bf790&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-04-17T03:12:49.789522" elapsed="0.000667"/>
</kw>
<test id="s1-s2-s1-t1" name="Get list of nodes" line="30">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:49.800222" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:50.001754" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:50.404452" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:50.406887" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:49.797587" elapsed="0.613566">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:50.411938" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:50.411482" elapsed="0.000550"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:50.412274" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:50.412073" elapsed="0.000282"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:50.411437" elapsed="0.000977"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:50.412588" elapsed="0.000035"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:50.413000" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:50.412820" elapsed="0.000263"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:50.412723" elapsed="0.000400"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:49.797098" elapsed="0.616178">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:52.426889" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:52.628701" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:53.031246" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:53.033980" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:52.423562" elapsed="0.615578">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:53.040020" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:53.039446" elapsed="0.000710"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:53.040538" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:53.040212" elapsed="0.000450"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:53.039358" elapsed="0.001351"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:53.041089" elapsed="0.000059"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:53.041755" elapsed="0.000057"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:53.041473" elapsed="0.000414"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:53.041285" elapsed="0.000630"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:52.422852" elapsed="0.619177">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:55.054779" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:55.256256" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:55.658848" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:55.661199" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:55.051458" elapsed="0.613731">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:55.665984" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:55.665525" elapsed="0.000558"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:55.666334" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:55.666123" elapsed="0.000354"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:55.665481" elapsed="0.001033"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:55.666693" elapsed="0.000034"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:55.667062" elapsed="0.000028"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:55.666894" elapsed="0.000246"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:55.666805" elapsed="0.000370"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:55.050669" elapsed="0.616653">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:12:57.683523" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:57.885101" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:58.287926" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:58.290590" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:12:57.680102" elapsed="0.615750">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:12:58.296884" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:58.296160" elapsed="0.000879"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:58.297472" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:12:58.297108" elapsed="0.000502"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:12:58.296094" elapsed="0.001567"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:58.298016" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:12:58.298328" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:12:58.298192" elapsed="0.000193"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:12:58.298120" elapsed="0.000310"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:12:57.679226" elapsed="0.619321">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:00.314799" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:00.516646" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:00.919759" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:00.921980" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:00.310946" elapsed="0.616289">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:00.928294" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:00.927681" elapsed="0.000788"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:00.928922" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:00.928531" elapsed="0.000524"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:00.927620" elapsed="0.001483"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:00.929253" elapsed="0.000022"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:00.929540" elapsed="0.000022"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:00.929397" elapsed="0.000202"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:00.929330" elapsed="0.000296"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:00.310169" elapsed="0.619563">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:13:00.929838" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:12:49.790742" elapsed="11.139195">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the inventory</doc>
<status status="FAIL" start="2026-04-17T03:12:49.790276" elapsed="11.139860">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s1-t2" name="Check No Link Down" line="39">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:00.943341" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:01.145562" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:01.548620" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:01.551491" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:00.940592" elapsed="0.616330">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:01.557364" elapsed="0.000052"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:01.557560" elapsed="0.000022"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:01.557720" elapsed="0.000021"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:13:00.940176" elapsed="0.617682">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:03.577659" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:03.780328" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:04.183688" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:04.186461" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:03.574505" elapsed="0.617606">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:04.192520" elapsed="0.000035"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:04.192695" elapsed="0.000021"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:04.192854" elapsed="0.000021"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:13:03.573906" elapsed="0.619094">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:06.211181" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:06.412811" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:06.821155" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:06.827054" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:06.208048" elapsed="0.622861">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:06.831299" elapsed="0.000093"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:06.831609" elapsed="0.000031"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:06.831829" elapsed="0.000029"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:13:06.207423" elapsed="0.624595">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:08.850804" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:09.052471" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:09.455508" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:09.457814" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:08.847730" elapsed="0.614279">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:09.462459" elapsed="0.000041"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:09.462687" elapsed="0.000030"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:09.462905" elapsed="0.000029"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:13:08.847077" elapsed="0.616012">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Specific Number Of Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:11.480316" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:11.682587" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.085976" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.088032" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:11.477569" elapsed="0.613452">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:12.091458" elapsed="0.000035"/>
</kw>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:12.091635" elapsed="0.000021"/>
</kw>
<kw name="Should Contain X Times" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${element}</arg>
<arg>${expected_count}</arg>
<doc>Fails if ``container`` does not contain ``item`` ``count`` times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:12.091792" elapsed="0.000021"/>
</kw>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>A GET is made to the specified ${URI} and the specific count of a
given element is done (as supplied by ${element} and ${expected_count})</doc>
<status status="FAIL" start="2026-04-17T03:13:11.477030" elapsed="0.614905">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:13:12.092053" level="FAIL">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Specific Number Of Elements At URI</arg>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>"link-down":false</arg>
<arg>8</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:13:00.930845" elapsed="11.161310">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check there is no link down. We have 8 ports in total: s1=2, s2=3, s3=3.</doc>
<status status="FAIL" start="2026-04-17T03:13:00.930347" elapsed="11.162058">Keyword 'Check For Specific Number Of Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s1-t3" name="Get node 1 inventory" line="49">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:13:12.094897" level="INFO">${list} = ['"flow-node-inventory:flow-feature-capability-flow-stats"', '"flow-node-inventory:flow-feature-capability-table-stats"', '"flow-node-inventory:flow-feature-capability-port-stats"', '"flow-node-invent...</msg>
<var>${list}</var>
<arg>@{SW_CAPABILITIES}</arg>
<arg>${SW_VENDOR}</arg>
<arg>${SW_IPADDRESS}</arg>
<arg>${SW_HARDWARE}</arg>
<arg>openflow:1:1</arg>
<arg>openflow:1:2</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:13:12.094081" elapsed="0.000848"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:12.106373" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.308089" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.711440" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.713750" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:12.103361" elapsed="0.614000">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:12.718061" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:12.717592" elapsed="0.000574"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:12.718437" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:12.718210" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:12.717547" elapsed="0.001000"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:12.718742" elapsed="0.000038"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:12.719172" elapsed="0.000035"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:12.718952" elapsed="0.000310"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:12.718862" elapsed="0.000438"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:12.102742" elapsed="0.616751">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:14.735515" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:14.937488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:15.340371" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:15.344238" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:14.732640" elapsed="0.616512">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:15.349772" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:15.349352" elapsed="0.000510"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:15.350092" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:15.349900" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:15.349310" elapsed="0.000891"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:15.350363" elapsed="0.000053"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:15.350743" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:15.350575" elapsed="0.000249"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:15.350491" elapsed="0.000387"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:14.731861" elapsed="0.619237">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:17.367794" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:17.569700" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:17.972498" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:17.975533" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:17.364326" elapsed="0.617216">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:17.982759" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:17.981917" elapsed="0.001001"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:17.983325" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:17.982984" elapsed="0.000504"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:17.981842" elapsed="0.001701"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:17.983822" elapsed="0.000049"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:17.984459" elapsed="0.000052"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:17.984136" elapsed="0.000460"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:17.983997" elapsed="0.000664"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:17.363568" elapsed="0.621347">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:19.999482" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:20.201870" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:20.604196" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:20.607460" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:19.995473" elapsed="0.615676">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:20.612042" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:20.611428" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:20.612446" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:20.612192" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:20.611347" elapsed="0.001226"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:20.612764" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:20.613182" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:20.612987" elapsed="0.000277"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:20.612879" elapsed="0.000426"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:19.994188" elapsed="0.619312">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:22.630365" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:22.832268" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.235763" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.238620" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:22.627256" elapsed="0.615812">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:23.243893" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:23.243318" elapsed="0.000674"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:23.244258" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:23.244036" elapsed="0.000301"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:23.243262" elapsed="0.001105"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:23.244620" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:23.245022" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:23.244833" elapsed="0.000268"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:23.244733" elapsed="0.000409"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:22.626322" elapsed="0.618989">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:13:23.245489" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:13:12.095109" elapsed="11.150521">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-04-17T03:13:12.092751" elapsed="11.153178">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s1-t4" name="Get node 2 inventory" line="60">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:13:23.247927" level="INFO">${list} = ['"flow-node-inventory:flow-feature-capability-flow-stats"', '"flow-node-inventory:flow-feature-capability-table-stats"', '"flow-node-inventory:flow-feature-capability-port-stats"', '"flow-node-invent...</msg>
<var>${list}</var>
<arg>@{SW_CAPABILITIES}</arg>
<arg>${SW_VENDOR}</arg>
<arg>${SW_IPADDRESS}</arg>
<arg>${SW_HARDWARE}</arg>
<arg>openflow:2:1</arg>
<arg>openflow:2:2</arg>
<arg>openflow:2:3</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:13:23.247081" elapsed="0.000890"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:23.261178" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.462787" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.865885" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.868271" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:23.257922" elapsed="0.614656">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:23.873620" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:23.872861" elapsed="0.000906"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:23.874127" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:23.873835" elapsed="0.000396"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:23.872798" elapsed="0.001472"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:23.874545" elapsed="0.000043"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:23.875015" elapsed="0.000034"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:23.874797" elapsed="0.000306"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:23.874685" elapsed="0.000464"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:23.257330" elapsed="0.618018">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:25.891835" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:26.093305" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:26.496260" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:26.498699" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:25.888787" elapsed="0.613948">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:26.503556" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:26.503016" elapsed="0.000632"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:26.503884" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:26.503688" elapsed="0.000267"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:26.502955" elapsed="0.001028"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:26.504135" elapsed="0.000026"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:26.504548" elapsed="0.000033"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:26.504333" elapsed="0.000331"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:26.504236" elapsed="0.000473"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:25.887608" elapsed="0.617283">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:28.521527" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:28.723288" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:29.126721" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:29.129331" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:28.517752" elapsed="0.616027">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:29.134462" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:29.133995" elapsed="0.000561"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:29.134803" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:29.134598" elapsed="0.000287"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:29.133953" elapsed="0.000964"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:29.135120" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:29.135524" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:29.135318" elapsed="0.000292"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:29.135230" elapsed="0.000419"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:28.516755" elapsed="0.619050">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:31.151723" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:31.353696" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:31.758013" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:31.760832" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:31.148573" elapsed="0.617566">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:31.767262" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:31.766503" elapsed="0.000940"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:31.767856" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:31.767508" elapsed="0.000498"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:31.766424" elapsed="0.001633"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:31.768347" elapsed="0.000194"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:31.769050" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:31.768847" elapsed="0.000284"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:31.768706" elapsed="0.000466"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:31.147662" elapsed="0.621682">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:33.787619" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:33.989636" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:34.392680" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:34.395504" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:33.784276" elapsed="0.616414">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:34.401756" elapsed="0.000128"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:34.401034" elapsed="0.000929"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:34.402345" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:34.402025" elapsed="0.000474"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:34.400961" elapsed="0.001587"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:34.402807" elapsed="0.000025"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:34.403122" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:34.402973" elapsed="0.000206"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:34.402894" elapsed="0.000314"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:33.783425" elapsed="0.619921">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:13:34.403493" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A2?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:13:23.248239" elapsed="11.155364">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-04-17T03:13:23.246416" elapsed="11.157437">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s1-t5" name="Get node 3 inventory" line="71">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:13:34.405367" level="INFO">${list} = ['"flow-node-inventory:flow-feature-capability-flow-stats"', '"flow-node-inventory:flow-feature-capability-table-stats"', '"flow-node-inventory:flow-feature-capability-port-stats"', '"flow-node-invent...</msg>
<var>${list}</var>
<arg>@{SW_CAPABILITIES}</arg>
<arg>${SW_VENDOR}</arg>
<arg>${SW_IPADDRESS}</arg>
<arg>${SW_HARDWARE}</arg>
<arg>openflow:3:1</arg>
<arg>openflow:3:2</arg>
<arg>openflow:3:3</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:13:34.404681" elapsed="0.000737"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:34.416645" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:34.618801" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:35.022143" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:35.025009" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:34.413327" elapsed="0.617342">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:35.031654" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:35.031150" elapsed="0.000580"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:35.031944" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:35.031766" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:35.031092" elapsed="0.000931"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:35.032147" elapsed="0.000022"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:35.032525" elapsed="0.000025"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:35.032321" elapsed="0.000269"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:35.032236" elapsed="0.000386"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:34.412758" elapsed="0.620010">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:37.050882" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:37.252618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:37.655796" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:37.658237" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:37.047611" elapsed="0.616924">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:37.665512" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:37.664842" elapsed="0.000810"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:37.666105" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:37.665730" elapsed="0.000552"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:37.664778" elapsed="0.001561"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:37.666693" elapsed="0.000054"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:37.667338" elapsed="0.000085"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:37.667045" elapsed="0.000534"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:37.666886" elapsed="0.000760"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:37.046753" elapsed="0.621131">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:39.684775" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:39.886586" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:40.290103" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:40.293197" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:39.681186" elapsed="0.617945">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:40.300219" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:40.299510" elapsed="0.000855"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:40.300780" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:40.300460" elapsed="0.000518"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:40.299435" elapsed="0.001597"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:40.301308" elapsed="0.000047"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:40.301995" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:40.301685" elapsed="0.000408"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:40.301516" elapsed="0.000608"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:39.680236" elapsed="0.622035">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:42.321588" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:42.523534" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:42.927860" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:42.930492" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:42.317349" elapsed="0.618886">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:42.937372" elapsed="0.000133"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:42.936625" elapsed="0.000984"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:42.938071" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:42.937680" elapsed="0.000530"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:42.936548" elapsed="0.001950"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:42.938841" elapsed="0.000065"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:42.939358" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:42.939197" elapsed="0.000234"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:42.939040" elapsed="0.000419"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:42.316001" elapsed="0.623587">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:44.955093" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:45.156600" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:45.559331" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:45.562607" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:44.951892" elapsed="0.614644">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:45.567329" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:45.566788" elapsed="0.000666"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:45.567743" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:45.567498" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:45.566724" elapsed="0.001131"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:45.568027" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:45.568458" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:45.568242" elapsed="0.000296"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:45.568143" elapsed="0.000435"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:44.951063" elapsed="0.617684">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:13:45.568908" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:13:34.405622" elapsed="11.163425">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the inventory for a node</doc>
<status status="FAIL" start="2026-04-17T03:13:34.404173" elapsed="11.165179">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s1-t6" name="Link Down" line="82">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:13:45.574357" level="INFO">link s1 s2 down</msg>
<arg>link s1 s2 down</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:13:45.570270" elapsed="0.004179"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:13:45.577972" level="INFO">mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:13:45.574603" elapsed="0.003429"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:13:45.578630" level="INFO">@{list} = [ "link-down":true ]</msg>
<var>@{list}</var>
<arg>"link-down":true</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:13:45.578184" elapsed="0.000473"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:45.590648" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:45.792465" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:46.195767" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:46.198642" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:45.587361" elapsed="0.615241">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:46.203536" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:46.202966" elapsed="0.000665"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:46.203891" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:46.203674" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:46.202907" elapsed="0.001123"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:46.204253" elapsed="0.000033"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:46.204689" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:46.204492" elapsed="0.000275"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:46.204374" elapsed="0.000432"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:45.586546" elapsed="0.618423">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:48.219984" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:48.421967" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:48.826040" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:48.828565" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:48.216245" elapsed="0.618026">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:48.835659" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:48.834760" elapsed="0.001063"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:48.836324" elapsed="0.000113"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:48.835891" elapsed="0.000653"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:48.834660" elapsed="0.001955"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:48.836910" elapsed="0.000065"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:48.837756" elapsed="0.000054"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:48.837427" elapsed="0.000473"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:48.837142" elapsed="0.000840"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:48.215290" elapsed="0.623034">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:50.854613" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:51.056226" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:51.459735" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:51.462548" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:50.850644" elapsed="0.615630">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:51.467094" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:51.466536" elapsed="0.000666"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:51.467498" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:51.467245" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:51.466477" elapsed="0.001131"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:51.467776" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:51.468174" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:51.467985" elapsed="0.000267"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:51.467886" elapsed="0.000407"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:50.849575" elapsed="0.618922">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:53.485904" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:53.687494" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:54.091171" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:54.094052" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:53.481539" elapsed="0.615834">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:54.098215" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:54.097645" elapsed="0.000667"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:54.098623" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:54.098355" elapsed="0.000354"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:54.097579" elapsed="0.001160"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:54.098909" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:54.099320" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:54.099123" elapsed="0.000301"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:54.099022" elapsed="0.000446"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:53.480471" elapsed="0.619174">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:56.122247" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.324162" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.727619" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.732047" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:56.117224" elapsed="0.620614">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:56.738820" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:56.738171" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:56.739108" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:56.738931" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:56.738095" elapsed="0.001093"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:56.739308" elapsed="0.000021"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:56.739655" elapsed="0.000022"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:56.739491" elapsed="0.000222"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:56.739411" elapsed="0.000332"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:56.115749" elapsed="0.624118">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:13:56.739987" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:13:45.578824" elapsed="11.161267">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A2/node-connector=openflow%3A2%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:56.740286" elapsed="0.000022"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-04-17T03:13:45.569685" elapsed="11.170874">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s1-t7" name="Link Up" line="100">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:13:56.746076" level="INFO">link s1 s2 up</msg>
<arg>link s1 s2 up</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:13:56.741195" elapsed="0.004980"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:13:56.750983" level="INFO">mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:13:56.746365" elapsed="0.004684"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:13:56.751716" level="INFO">@{list} = [ "link-down":false ]</msg>
<var>@{list}</var>
<arg>"link-down":false</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:13:56.751216" elapsed="0.000529"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:56.763179" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.964968" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:57.367827" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:57.370511" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:56.759870" elapsed="0.615601">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:13:57.376334" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:57.375746" elapsed="0.000712"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:57.376763" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:13:57.376506" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:13:57.375670" elapsed="0.001204"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:57.377047" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:13:57.377482" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:13:57.377262" elapsed="0.000300"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:13:57.377160" elapsed="0.000444"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:56.759239" elapsed="0.618535">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:13:59.394763" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:59.596464" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:59.999126" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:00.002055" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:13:59.390054" elapsed="0.617885">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:00.008759" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:00.008201" elapsed="0.000659"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:00.009134" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:00.008905" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:00.008141" elapsed="0.001106"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:00.009491" elapsed="0.000039"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:00.009976" elapsed="0.000033"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:00.009757" elapsed="0.000309"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:00.009627" elapsed="0.000484"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:13:59.388879" elapsed="0.621428">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:02.021852" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:02.223470" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:02.626234" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:02.628991" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:02.018504" elapsed="0.615223">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:02.634613" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:02.634005" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:02.635088" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:02.634807" elapsed="0.000400"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:02.633945" elapsed="0.001306"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:02.635470" elapsed="0.000033"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:02.635988" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:02.635732" elapsed="0.000369"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:02.635603" elapsed="0.000555"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:14:02.017603" elapsed="0.618765">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:04.656823" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:04.858742" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:05.261418" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:05.263964" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:04.653065" elapsed="0.615223">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:05.269671" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:05.268697" elapsed="0.001118"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:05.270297" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:05.269883" elapsed="0.000563"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:05.268623" elapsed="0.001871"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:05.270877" elapsed="0.000035"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:05.271310" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:05.271107" elapsed="0.000298"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:05.271001" elapsed="0.000447"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:14:04.651838" elapsed="0.619818">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:07.287891" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:07.491962" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:07.894869" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:07.897470" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:07.284785" elapsed="0.618004">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:07.903889" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:07.903136" elapsed="0.000853"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:07.904181" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:07.904019" elapsed="0.000216"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:07.903070" elapsed="0.001187"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:07.904376" elapsed="0.000035"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:07.904687" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:07.904545" elapsed="0.000197"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:07.904473" elapsed="0.000297"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:14:07.283995" elapsed="0.620904">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:14:07.905025" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/node-connector=openflow%3A1%3A1?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:13:56.751934" elapsed="11.153200">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A2/node-connector=openflow%3A2%3A3?${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>${list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:07.905324" elapsed="0.000021"/>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-04-17T03:13:56.740797" elapsed="11.164774">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:14:07.906368" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:14:07.906224" elapsed="0.000270"/>
</kw>
<doc>Test suite for RESTCONF inventory</doc>
<status status="FAIL" start="2026-04-17T03:12:49.754072" elapsed="78.152459"/>
</suite>
<suite id="s1-s2-s2" name="020 Restconf Topology" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/020_restconf_topology.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-04-17T03:14:07.940404" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/json'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09e1e77d0&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}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-04-17T03:14:07.939657" elapsed="0.001020"/>
</kw>
<test id="s1-s2-s2-t1" name="Get RESTCONF Topology" line="20">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:07.951722" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:08.153183" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:08.556114" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:08.558774" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:07.948418" elapsed="0.613789">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:08.563143" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:08.562530" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:08.563574" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:08.563304" elapsed="0.000374"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:08.562450" elapsed="0.001259"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:08.563887" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:08.564307" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:08.564109" elapsed="0.000311"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:08.564000" elapsed="0.000464"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:14:07.947758" elapsed="0.616902">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:10.579256" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:10.781243" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:11.184330" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:11.187344" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:10.575243" elapsed="0.615938">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:11.191979" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:11.191450" elapsed="0.000626"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:11.192464" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:11.192214" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:11.191369" elapsed="0.001208"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:11.192774" elapsed="0.000036"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:11.193231" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:11.192998" elapsed="0.000317"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:11.192898" elapsed="0.000457"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:14:10.574288" elapsed="0.619255">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:13.209322" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:13.411057" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:13.813867" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:13.817044" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:13.206250" elapsed="0.615695">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:13.823319" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:13.822202" elapsed="0.001235"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:13.823701" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:13.823480" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:13.822144" elapsed="0.001670"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:13.823978" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:13.824377" elapsed="0.000051"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:13.824186" elapsed="0.000292"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:13.824092" elapsed="0.000428"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:14:13.205465" elapsed="0.619215">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:15.840502" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:16.041977" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:16.444651" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:16.447124" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:15.836618" elapsed="0.613872">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:16.451376" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:16.450843" elapsed="0.000649"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:16.451827" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:16.451547" elapsed="0.000365"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:16.450787" elapsed="0.001156"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:16.452129" elapsed="0.000038"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:16.452588" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:16.452370" elapsed="0.000299"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:16.452267" elapsed="0.000441"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:14:15.835556" elapsed="0.617315">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:18.470239" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:18.672188" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.075348" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.078775" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:18.466535" elapsed="0.617132">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:14:19.084400" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:19.083891" elapsed="0.000608"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.084749" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:14:19.084540" elapsed="0.000287"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:14:19.083841" elapsed="0.001017"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.085021" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.085457" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:14:19.085249" elapsed="0.000289"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:14:19.085130" elapsed="0.000448"/>
</for>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:14:18.465619" elapsed="0.620112">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:14:19.085883" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>${node_list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:14:07.941417" elapsed="11.144601">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="GET On Session" owner="RequestsLibrary">
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.086235" elapsed="0.000030"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.086478" elapsed="0.000030"/>
</kw>
<doc>Get RESTCONF Topology and validate the result.</doc>
<status status="FAIL" start="2026-04-17T03:14:07.940793" elapsed="11.145958">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s2-t2" name="List all the links" line="31">
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.089850" level="INFO">${body1} = {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:2'}</msg>
<var>${body1}</var>
<arg>dest-node=openflow:1</arg>
<arg>dest-tp=openflow:1:2</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.088967" elapsed="0.000940"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.090838" level="INFO">${body2} = {'source-node': 'openflow:3', 'source-tp': 'openflow:3:3'}</msg>
<var>${body2}</var>
<arg>source-node=openflow:3</arg>
<arg>source-tp=openflow:3:3</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.090198" elapsed="0.000680"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.091956" level="INFO">${link2} = {'link-id': 'openflow:3:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:2'}, 'source': {'source-node': 'openflow:3', 'source-tp': 'openflow:3:3'}}</msg>
<var>${link2}</var>
<arg>link-id=openflow:3:3</arg>
<arg>destination=${body1}</arg>
<arg>source=${body2}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.091153" elapsed="0.000855"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.092969" level="INFO">${link2} = {'link-id': 'openflow:3:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:2'}, 'source': {'source-node': 'openflow:3', 'source-tp': 'openflow:3:3'}}</msg>
<arg>${link2}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:14:19.092315" elapsed="0.000744"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.094029" level="INFO">${body1} = {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}</msg>
<var>${body1}</var>
<arg>dest-node=openflow:1</arg>
<arg>dest-tp=openflow:1:1</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.093418" elapsed="0.000666"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.094824" level="INFO">${body2} = {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}</msg>
<var>${body2}</var>
<arg>source-node=openflow:2</arg>
<arg>source-tp=openflow:2:3</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.094363" elapsed="0.000499"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.095646" level="INFO">${link1} = {'link-id': 'openflow:2:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}, 'source': {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}}</msg>
<var>${link1}</var>
<arg>link-id=openflow:2:3</arg>
<arg>destination=${body1}</arg>
<arg>source=${body2}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.095072" elapsed="0.000611"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.096356" level="INFO">${link1} = {'link-id': 'openflow:2:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}, 'source': {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}}</msg>
<arg>${link1}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:14:19.095902" elapsed="0.000536"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.097087" level="INFO">${body1} = {'dest-node': 'openflow:3', 'dest-tp': 'openflow:3:3'}</msg>
<var>${body1}</var>
<arg>dest-node=openflow:3</arg>
<arg>dest-tp=openflow:3:3</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.096641" elapsed="0.000484"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.097816" level="INFO">${body2} = {'source-node': 'openflow:1', 'source-tp': 'openflow:1:2'}</msg>
<var>${body2}</var>
<arg>source-node=openflow:1</arg>
<arg>source-tp=openflow:1:2</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.097369" elapsed="0.000484"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.098637" level="INFO">${link4} = {'link-id': 'openflow:1:2', 'destination': {'dest-node': 'openflow:3', 'dest-tp': 'openflow:3:3'}, 'source': {'source-node': 'openflow:1', 'source-tp': 'openflow:1:2'}}</msg>
<var>${link4}</var>
<arg>link-id=openflow:1:2</arg>
<arg>destination=${body1}</arg>
<arg>source=${body2}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.098058" elapsed="0.000615"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.099273" level="INFO">${link4} = {'link-id': 'openflow:1:2', 'destination': {'dest-node': 'openflow:3', 'dest-tp': 'openflow:3:3'}, 'source': {'source-node': 'openflow:1', 'source-tp': 'openflow:1:2'}}</msg>
<arg>${link4}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:14:19.098883" elapsed="0.000438"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.099803" level="INFO">${body1} = {'dest-node': 'openflow:2', 'dest-tp': 'openflow:2:3'}</msg>
<var>${body1}</var>
<arg>dest-node=openflow:2</arg>
<arg>dest-tp=openflow:2:3</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.099487" elapsed="0.000344"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.100354" level="INFO">${body2} = {'source-node': 'openflow:1', 'source-tp': 'openflow:1:1'}</msg>
<var>${body2}</var>
<arg>source-node=openflow:1</arg>
<arg>source-tp=openflow:1:1</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.099982" elapsed="0.000426"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.101010" level="INFO">${link3} = {'link-id': 'openflow:1:1', 'destination': {'dest-node': 'openflow:2', 'dest-tp': 'openflow:2:3'}, 'source': {'source-node': 'openflow:1', 'source-tp': 'openflow:1:1'}}</msg>
<var>${link3}</var>
<arg>link-id=openflow:1:1</arg>
<arg>destination=${body1}</arg>
<arg>source=${body2}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:14:19.100583" elapsed="0.000469"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.101687" level="INFO">${link3} = {'link-id': 'openflow:1:1', 'destination': {'dest-node': 'openflow:2', 'dest-tp': 'openflow:2:3'}, 'source': {'source-node': 'openflow:1', 'source-tp': 'openflow:1:1'}}</msg>
<arg>${link3}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:14:19.101265" elapsed="0.000484"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:14:19.102543" level="INFO">${links} = [{'link-id': 'openflow:2:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}, 'source': {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}}, {'link-id': 'openflow:3:3', '...</msg>
<var>${links}</var>
<arg>${link1}</arg>
<arg>${link2}</arg>
<arg>${link3}</arg>
<arg>${link4}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:14:19.101948" elapsed="0.000633"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:19.107959" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.309773" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.712839" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.715708" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:19.104187" elapsed="0.615832">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.720556" elapsed="0.000060"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.721030" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.721262" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.721549" elapsed="0.000032"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.721798" elapsed="0.000028"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.722011" elapsed="0.000027"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:19.722453" elapsed="0.000521"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:19.722249" elapsed="0.000785"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:19.722133" elapsed="0.000945"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:19.103688" elapsed="0.619555">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:21.732180" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:21.933942" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:22.336949" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:22.339631" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:21.725672" elapsed="0.617586">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:22.343808" elapsed="0.000059"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:22.344279" elapsed="0.000042"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:22.344552" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:22.344785" elapsed="0.000031"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:22.345020" elapsed="0.000028"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:22.345242" elapsed="0.000662"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:22.346301" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:22.346123" elapsed="0.000284"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:22.346008" elapsed="0.000447"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:21.724535" elapsed="0.622145">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:24.354802" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:24.557042" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:24.959927" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:24.962317" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:24.349105" elapsed="0.616353">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:24.965840" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:24.966205" elapsed="0.000033"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:24.966380" elapsed="0.000038"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:24.966560" elapsed="0.000020"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:24.966719" elapsed="0.000019"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:24.966873" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:24.967165" elapsed="0.000020"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:24.967044" elapsed="0.000175"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:24.966964" elapsed="0.000287"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:24.347788" elapsed="0.619589">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:26.975775" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:27.177646" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:27.580756" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:27.583902" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:26.970074" elapsed="0.618715">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:27.589458" elapsed="0.000070"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:27.589966" elapsed="0.000042"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:27.590206" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:27.590509" elapsed="0.000047"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:27.590828" elapsed="0.000033"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:27.591100" elapsed="0.000033"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:27.591632" elapsed="0.000048"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:27.591358" elapsed="0.000389"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:27.591238" elapsed="0.000558"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:26.968525" elapsed="0.623469">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:29.599074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:29.801066" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.203781" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.207321" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:29.594071" elapsed="0.618603">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.213225" elapsed="0.000070"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.213848" elapsed="0.000061"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.214212" elapsed="0.000045"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.214577" elapsed="0.000046"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.214923" elapsed="0.000043"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.215340" elapsed="0.000074"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.215823" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:30.215700" elapsed="0.000178"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:30.215554" elapsed="0.000356"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:29.593057" elapsed="0.622985">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:14:30.216154" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Verify Links</arg>
<arg>${links}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:14:19.102800" elapsed="11.113454">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>List all the links in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:14:19.088243" elapsed="11.128351">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s2-t3" name="Link Down" line="52">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:14:30.220674" level="INFO">link s1 s2 down</msg>
<arg>link s1 s2 down</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:14:30.217289" elapsed="0.003454"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:14:30.224222" level="INFO">mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:14:30.220889" elapsed="0.003390"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:14:30.224894" level="INFO">${links} = [{'link-id': 'openflow:3:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:2'}, 'source': {'source-node': 'openflow:3', 'source-tp': 'openflow:3:3'}}, {'link-id': 'openflow:1:2', '...</msg>
<var>${links}</var>
<arg>${link2}</arg>
<arg>${link4}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:14:30.224446" elapsed="0.000477"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:30.228431" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.429845" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.832679" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.835450" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:30.226016" elapsed="0.614493">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.841118" elapsed="0.000072"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.841737" elapsed="0.000057"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.842080" elapsed="0.000044"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.842418" elapsed="0.000046"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.842752" elapsed="0.000046"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.843081" elapsed="0.000042"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:30.843707" elapsed="0.000033"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:30.843475" elapsed="0.000313"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:30.843253" elapsed="0.000578"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:30.225692" elapsed="0.618336">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:32.851421" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:33.053067" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:33.455794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:33.458269" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:32.846209" elapsed="0.617672">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:33.464382" elapsed="0.000093"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:33.465120" elapsed="0.000064"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:33.465357" elapsed="0.000021"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:33.465531" elapsed="0.000021"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:33.465689" elapsed="0.000020"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:33.465840" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:33.466111" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:33.465995" elapsed="0.000172"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:33.465922" elapsed="0.000274"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:32.845126" elapsed="0.621194">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:35.472455" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:35.674494" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:36.077548" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:36.080443" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:35.468308" elapsed="0.618955">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:36.087945" elapsed="0.000095"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:36.088783" elapsed="0.000072"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:36.089212" elapsed="0.000052"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:36.089616" elapsed="0.000052"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:36.090019" elapsed="0.000118"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:36.090502" elapsed="0.000050"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:36.091016" elapsed="0.000023"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:36.090851" elapsed="0.000225"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:36.090695" elapsed="0.000414"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:35.467344" elapsed="0.623902">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:38.097959" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:38.300089" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:38.702938" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:38.705881" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:38.093852" elapsed="0.617257">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:38.711789" elapsed="0.000073"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:38.712317" elapsed="0.000043"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:38.712581" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:38.712810" elapsed="0.000032"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:38.713055" elapsed="0.000034"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:38.713289" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:38.713754" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:38.713590" elapsed="0.000241"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:38.713453" elapsed="0.000431"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:38.092800" elapsed="0.621313">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:40.720528" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:40.922211" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:41.324761" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:41.328007" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:40.716070" elapsed="0.616311">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:41.333023" elapsed="0.000074"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:41.334282" elapsed="0.000047"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:41.334558" elapsed="0.000033"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:41.334795" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:41.335027" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:41.336055" elapsed="0.000035"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:41.336605" elapsed="0.000041"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:41.336317" elapsed="0.000517"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:41.336197" elapsed="0.000689"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:40.714992" elapsed="0.622104">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:43.343074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:43.545230" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:43.948539" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:43.951176" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:43.338702" elapsed="0.616898">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:43.956054" elapsed="0.000046"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:43.956479" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:43.956709" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:43.956886" elapsed="0.000022"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:43.957074" elapsed="0.000025"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:43.957236" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:43.957684" elapsed="0.000025"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:43.957532" elapsed="0.000218"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:43.957350" elapsed="0.000436"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:43.337930" elapsed="0.620011">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:45.963750" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:46.165784" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:46.568914" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:46.572343" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:45.959682" elapsed="0.617664">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:46.577788" elapsed="0.000054"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:46.578221" elapsed="0.000040"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:46.578554" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:46.578777" elapsed="0.000029"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:46.578995" elapsed="0.000027"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:46.579202" elapsed="0.000027"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:46.579640" elapsed="0.000031"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:46.579457" elapsed="0.000263"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:46.579328" elapsed="0.000437"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:45.958843" elapsed="0.621092">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:48.587606" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:48.789299" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:49.192219" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:49.194941" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:48.582171" elapsed="0.618355">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:49.201181" elapsed="0.000073"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:49.201711" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:49.201944" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:49.202159" elapsed="0.000027"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:49.202379" elapsed="0.000055"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:49.202620" elapsed="0.000027"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:49.203018" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:49.202851" elapsed="0.000246"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:49.202742" elapsed="0.000399"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:48.581018" elapsed="0.622304">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:51.211454" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:51.418238" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:51.821820" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:51.824908" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:51.205674" elapsed="0.625220">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:51.831474" elapsed="0.000039"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:51.831819" elapsed="0.000029"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:51.831980" elapsed="0.000020"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:51.832129" elapsed="0.000020"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:51.832286" elapsed="0.000019"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:51.832449" elapsed="0.000022"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:51.832750" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:51.832632" elapsed="0.000174"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:51.832547" elapsed="0.000291"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:51.204435" elapsed="0.628535">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:53.838884" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:54.042197" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:54.445063" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:54.447881" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:53.835469" elapsed="0.620050">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:54.457177" elapsed="0.000076"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:54.457844" elapsed="0.000064"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:54.458235" elapsed="0.000049"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:54.458633" elapsed="0.000049"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:54.459001" elapsed="0.000047"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:54.459476" elapsed="0.000058"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:54.460167" elapsed="0.000048"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:54.459892" elapsed="0.000407"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:54.459736" elapsed="0.000630"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:53.833794" elapsed="0.626805">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:56.468230" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:56.670670" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:57.073812" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:57.076456" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:56.463500" elapsed="0.618680">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:57.082817" elapsed="0.000074"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:57.083495" elapsed="0.000066"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:57.083890" elapsed="0.000049"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:57.084250" elapsed="0.000048"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:57.084651" elapsed="0.000050"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:57.085103" elapsed="0.000062"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:57.085672" elapsed="0.000022"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:57.085501" elapsed="0.000229"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:57.085313" elapsed="0.000449"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:56.461994" elapsed="0.623929">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:14:59.093130" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:59.305549" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:59.708616" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:59.710955" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:14:59.087923" elapsed="0.626727">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:59.715047" elapsed="0.000045"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:14:59.715480" elapsed="0.000042"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:59.715722" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:59.715944" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:59.716173" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:59.716422" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:14:59.716810" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:14:59.716642" elapsed="0.000360"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:14:59.716542" elapsed="0.000506"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:14:59.086896" elapsed="0.630320">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:01.726305" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:01.928479" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:02.331176" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:02.333325" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:01.720431" elapsed="0.617155">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:02.337955" elapsed="0.000042"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:02.338332" elapsed="0.000037"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:02.338582" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:02.338789" elapsed="0.000027"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:02.338997" elapsed="0.000027"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:02.339199" elapsed="0.000025"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:02.339578" elapsed="0.000028"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:02.339421" elapsed="0.000231"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:02.339308" elapsed="0.000383"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:01.718842" elapsed="0.621059">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:04.347718" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:04.549859" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:04.952677" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:04.955527" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:04.342124" elapsed="0.618860">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:04.961630" elapsed="0.000067"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:04.962219" elapsed="0.000065"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:04.962572" elapsed="0.000023"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:04.962729" elapsed="0.000021"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:04.962887" elapsed="0.000022"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:04.963044" elapsed="0.000023"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:04.963347" elapsed="0.000023"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:04.963224" elapsed="0.000200"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:04.963147" elapsed="0.000308"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:04.340915" elapsed="0.622653">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:06.971292" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:07.173570" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:07.576687" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:07.578890" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:06.965830" elapsed="0.616300">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:07.582523" elapsed="0.000047"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:07.582900" elapsed="0.000038"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:07.583126" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:07.583332" elapsed="0.000031"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:07.583578" elapsed="0.000027"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:07.583780" elapsed="0.000027"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:07.584144" elapsed="0.000029"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:07.583976" elapsed="0.000246"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:07.583888" elapsed="0.000373"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:06.964821" elapsed="0.619633">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:09.591835" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:09.794499" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:10.197524" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:10.199945" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:09.586618" elapsed="0.617642">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:10.204716" elapsed="0.000061"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:10.205246" elapsed="0.000043"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:10.205523" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:10.205740" elapsed="0.000032"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:10.205999" elapsed="0.000034"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:10.206225" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:10.206672" elapsed="0.000033"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:10.206487" elapsed="0.000277"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:10.206335" elapsed="0.000468"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:09.585363" elapsed="0.621595">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:12.213979" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:12.416271" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:12.819445" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:12.821486" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:12.208750" elapsed="0.616128">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:12.825249" elapsed="0.000047"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:12.825664" elapsed="0.000039"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:12.825895" elapsed="0.000034"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:12.826111" elapsed="0.000029"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:12.826325" elapsed="0.000027"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:12.826608" elapsed="0.000035"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:12.827029" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:12.826831" elapsed="0.000276"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:12.826734" elapsed="0.000414"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:12.208003" elapsed="0.619295">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:14.834170" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:15.036792" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:15.440156" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:15.442925" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:14.829235" elapsed="0.618804">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:15.448467" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:15.448864" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:15.449163" elapsed="0.000038"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:15.449481" elapsed="0.000040"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:15.449730" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:15.450183" elapsed="0.000034"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:15.450663" elapsed="0.000047"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:15.450454" elapsed="0.000504"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:15.450325" elapsed="0.000676"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:14.828205" elapsed="0.622971">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:17.456668" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:17.658361" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:18.061671" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:18.064062" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:17.453105" elapsed="0.615623">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:18.069108" elapsed="0.000048"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:18.069539" elapsed="0.000043"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:18.069788" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:18.070015" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:18.070245" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:18.070509" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:18.070951" elapsed="0.000032"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:18.070774" elapsed="0.000473"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:18.070629" elapsed="0.000666"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:17.451925" elapsed="0.619560">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:20.078486" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:20.280181" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:20.683605" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:20.686275" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:20.073343" elapsed="0.617277">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:20.691008" elapsed="0.000049"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:20.691437" elapsed="0.000043"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:20.691683" elapsed="0.000033"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:20.691962" elapsed="0.000039"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:20.692248" elapsed="0.000041"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:20.692577" elapsed="0.000040"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:20.693058" elapsed="0.000040"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:20.692857" elapsed="0.000312"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:20.692733" elapsed="0.000492"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:20.072427" elapsed="0.621028">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:22.700906" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:22.903002" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:23.305760" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:23.308427" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:22.696012" elapsed="0.617672">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:23.314176" elapsed="0.000063"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:23.314762" elapsed="0.000059"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:23.315300" elapsed="0.000052"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:23.315689" elapsed="0.000046"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:23.316097" elapsed="0.000051"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:23.316539" elapsed="0.000051"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:23.317096" elapsed="0.000044"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:23.316849" elapsed="0.000373"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:23.316717" elapsed="0.000580"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:22.695097" elapsed="0.622457">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:25.324777" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:25.526491" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:25.929457" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:25.932216" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:25.319631" elapsed="0.616326">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:25.936333" elapsed="0.000047"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:25.936806" elapsed="0.000042"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:25.937060" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:25.937286" elapsed="0.000030"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:25.937543" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:25.937801" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:25.938664" elapsed="0.000036"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:25.938022" elapsed="0.000732"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:25.937919" elapsed="0.000880"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:25.318587" elapsed="0.620372">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:27.946014" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:28.148446" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:28.551114" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:28.553616" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:27.941003" elapsed="0.618248">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:28.559781" elapsed="0.000065"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:28.560339" elapsed="0.000088"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:28.560796" elapsed="0.000048"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:28.561113" elapsed="0.000023"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:28.561272" elapsed="0.000021"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:28.561438" elapsed="0.000021"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:28.561715" elapsed="0.000021"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:28.561597" elapsed="0.000174"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:28.561523" elapsed="0.000277"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:27.939934" elapsed="0.621983">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:30.569839" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:30.771775" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.174486" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.176985" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:30.564360" elapsed="0.619607">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.184587" elapsed="0.000071"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.185197" elapsed="0.000056"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.185405" elapsed="0.000023"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.185560" elapsed="0.000021"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.185715" elapsed="0.000020"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.185866" elapsed="0.000020"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.186148" elapsed="0.000022"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:31.186032" elapsed="0.000173"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:31.185955" elapsed="0.000282"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:30.563175" elapsed="0.623181">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:15:31.186481" level="FAIL">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>60s</arg>
<arg>2s</arg>
<arg>Verify Links</arg>
<arg>${links}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:14:30.225100" elapsed="60.961575">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>sh ovs-vsctl find Interface name="s1-eth1"</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.186856" elapsed="0.000024"/>
</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-04-17T03:15:31.187022" elapsed="0.000037"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.187225" elapsed="0.000021"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>sh ovs-vsctl find Interface name="s1-eth2"</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.187375" elapsed="0.000035"/>
</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-04-17T03:15:31.187541" elapsed="0.000020"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.187688" elapsed="0.000024"/>
</kw>
<doc>Take link s1-s2 down</doc>
<status status="FAIL" start="2026-04-17T03:14:30.216858" elapsed="60.971032">Keyword 'Verify Links' failed after retrying for 1 minute. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s2-t4" name="Link Up" line="69">
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:15:31.192698" level="INFO">link s1 s2 up</msg>
<arg>link s1 s2 up</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:15:31.188582" elapsed="0.004185"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:15:31.222738" level="INFO">mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:15:31.192910" elapsed="0.030020"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:15:31.224057" level="INFO">${links} = [{'link-id': 'openflow:2:3', 'destination': {'dest-node': 'openflow:1', 'dest-tp': 'openflow:1:1'}, 'source': {'source-node': 'openflow:2', 'source-tp': 'openflow:2:3'}}, {'link-id': 'openflow:3:3', '...</msg>
<var>${links}</var>
<arg>${link1}</arg>
<arg>${link2}</arg>
<arg>${link3}</arg>
<arg>${link4}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:15:31.223289" elapsed="0.000808"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:31.228883" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.430616" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.834053" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.837046" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:31.225652" elapsed="0.615253">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.841869" elapsed="0.000051"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.842296" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.842564" elapsed="0.000033"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.842840" elapsed="0.000037"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.843092" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.843320" elapsed="0.000029"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:31.843848" elapsed="0.000035"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:31.843625" elapsed="0.000313"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:31.843500" elapsed="0.000495"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:31.225176" elapsed="0.619046">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:33.852222" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:34.054821" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:34.457557" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:34.460100" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:33.846271" elapsed="0.619388">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:34.466058" elapsed="0.000046"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:34.466480" elapsed="0.000041"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:34.466721" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:34.466942" elapsed="0.000029"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:34.467165" elapsed="0.000029"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:34.467402" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:34.467804" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:34.467634" elapsed="0.000252"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:34.467520" elapsed="0.000408"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:33.845243" elapsed="0.622850">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:36.476033" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:36.677823" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:37.080833" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:37.083585" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:36.470354" elapsed="0.618728">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:37.089670" elapsed="0.000067"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:37.090296" elapsed="0.000059"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:37.090681" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:37.090920" elapsed="0.000033"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:37.091250" elapsed="0.000031"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:37.091501" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:37.091885" elapsed="0.000030"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:37.091716" elapsed="0.000251"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:37.091621" elapsed="0.000389"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:36.469186" elapsed="0.622985">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:39.099634" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:39.301522" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:39.704269" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:39.707252" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:39.094041" elapsed="0.619098">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:39.713695" elapsed="0.000064"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:39.714243" elapsed="0.000060"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:39.714652" elapsed="0.000056"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:39.715049" elapsed="0.000058"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:39.715449" elapsed="0.000048"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:39.715857" elapsed="0.000024"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:39.716133" elapsed="0.000023"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:39.716017" elapsed="0.000174"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:39.715944" elapsed="0.000275"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:39.093099" elapsed="0.623244">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify Links">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:41.722765" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:41.925276" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:42.328324" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:42.330846" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_FLOW1_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:41.718219" elapsed="0.615827">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:42.334540" elapsed="0.000044"/>
</kw>
<kw name="Json Parse From String" owner="Utils">
<var>${result}</var>
<arg>${resp.text}</arg>
<doc>Parse given plain string into json (dictionary)</doc>
<status status="NOT RUN" start="2026-04-17T03:15:42.334918" elapsed="0.000038"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${result}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:42.335155" elapsed="0.000032"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${content}</var>
<arg>${result}</arg>
<arg>network-topology:topology</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:42.335371" elapsed="0.000049"/>
</kw>
<kw name="Get From List" owner="Collections">
<var>${topology}</var>
<arg>${content}</arg>
<arg>0</arg>
<doc>Returns the value specified with an ``index`` from ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:42.335611" elapsed="0.000030"/>
</kw>
<kw name="Get From Dictionary" owner="Collections">
<var>${links}</var>
<arg>${topology}</arg>
<arg>link</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:42.335825" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${links}</arg>
<arg>${expected_link}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:42.336186" elapsed="0.000027"/>
</kw>
<var name="${expected_link}"/>
<status status="NOT RUN" start="2026-04-17T03:15:42.336030" elapsed="0.000227"/>
</iter>
<var>${expected_link}</var>
<value>@{expected_links}</value>
<status status="NOT RUN" start="2026-04-17T03:15:42.335937" elapsed="0.000359"/>
</for>
<arg>${links}</arg>
<status status="FAIL" start="2026-04-17T03:15:41.717245" elapsed="0.619240">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:15:42.336631" level="FAIL">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Verify Links</arg>
<arg>${links}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:15:31.224370" elapsed="11.112393">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Take link s1-s2 up</doc>
<status status="FAIL" start="2026-04-17T03:15:31.188175" elapsed="11.150490">Keyword 'Verify Links' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:15:42.339605" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:15:42.339416" elapsed="0.000789"/>
</kw>
<doc>Test suite for RESTCONF Topology</doc>
<status status="FAIL" start="2026-04-17T03:14:07.907225" elapsed="94.433036"/>
</suite>
<suite id="s1-s2-s3" name="030 Restconf Statistics" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/030_restconf_statistics.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-04-17T03:15:42.385496" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c65bbd0&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-04-17T03:15:42.384884" elapsed="0.000825"/>
</kw>
<test id="s1-s2-s3-t1" name="Get Stats for all nodes" line="20">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:42.396620" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:42.598156" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:43.000692" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:43.002785" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:42.393351" elapsed="0.613128">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:15:43.007270" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:43.006825" elapsed="0.000540"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:43.007645" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:43.007434" elapsed="0.000291"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:15:43.006776" elapsed="0.000981"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:43.007929" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:43.008316" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:15:43.008132" elapsed="0.000297"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:15:43.008042" elapsed="0.000431"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:15:42.392807" elapsed="0.615830">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:45.024870" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:45.226181" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:45.629214" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:45.632047" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:45.021062" elapsed="0.615823">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:15:45.637528" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:45.637088" elapsed="0.000532"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:45.637859" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:45.637658" elapsed="0.000280"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:15:45.637045" elapsed="0.000933"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:45.638178" elapsed="0.000033"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:45.638580" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:15:45.638377" elapsed="0.000285"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:15:45.638291" elapsed="0.000409"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:15:45.020252" elapsed="0.618593">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:47.654362" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:47.856313" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:48.259178" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:48.261370" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:47.650798" elapsed="0.619817">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:15:48.272056" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:48.271029" elapsed="0.001139"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:48.272480" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:48.272213" elapsed="0.000377"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:15:48.270980" elapsed="0.001643"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:48.272799" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:48.273194" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:15:48.273004" elapsed="0.000277"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:15:48.272912" elapsed="0.000411"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:15:47.650009" elapsed="0.623503">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:50.289691" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:50.491174" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:50.893926" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:50.896700" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:50.285688" elapsed="0.616580">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:15:50.902961" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:50.902612" elapsed="0.000415"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:50.903210" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:50.903055" elapsed="0.000211"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:15:50.902552" elapsed="0.000735"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:50.903422" elapsed="0.000022"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:50.903704" elapsed="0.000022"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:15:50.903566" elapsed="0.000194"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:15:50.903501" elapsed="0.000286"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:15:50.284777" elapsed="0.619127">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:52.920095" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:53.121886" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:53.524645" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:53.527338" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:52.917181" elapsed="0.613157">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:15:53.531090" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:53.530664" elapsed="0.000506"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:53.531446" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:15:53.531207" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:15:53.530609" elapsed="0.000944"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:53.531704" elapsed="0.000028"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:53.532046" elapsed="0.000029"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:15:53.531879" elapsed="0.000241"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:15:53.531801" elapsed="0.000353"/>
</for>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:15:52.916609" elapsed="0.615674">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:15:53.532437" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>${node_list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:15:42.386275" elapsed="11.146280">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the stats for all nodes</doc>
<status status="FAIL" start="2026-04-17T03:15:42.385808" elapsed="11.146998">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s3-t2" name="Get Stats for node 1" line="29">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:53.540562" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:53.741952" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:54.144707" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:54.146922" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:53.537844" elapsed="0.614957">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:54.153175" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:54.153428" elapsed="0.000032"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:15:53.537516" elapsed="0.616102">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:56.164295" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:56.366110" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:56.769862" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:56.772547" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:56.160423" elapsed="0.617530">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:56.778292" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:56.778478" elapsed="0.000022"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:15:56.159809" elapsed="0.618804">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:15:58.790382" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:58.991911" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:59.394641" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:59.397255" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:15:58.787402" elapsed="0.615114">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:59.403077" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:15:59.403370" elapsed="0.000049"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:15:58.786537" elapsed="0.617037">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:01.414307" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:01.616080" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:02.018439" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:02.020839" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:01.410652" elapsed="0.616066">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:02.027284" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:02.027728" elapsed="0.000070"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:01.410035" elapsed="0.618045">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:04.040825" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.242935" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.645839" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.648335" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:04.036683" elapsed="0.615107">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:04.652154" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:04.652445" elapsed="0.000035"/>
</kw>
<arg>openflow%3A1</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:04.036047" elapsed="0.616597">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:16:04.652794" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check Nodes Stats</arg>
<arg>openflow%3A1</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:15:53.533858" elapsed="11.119074">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-04-17T03:15:53.533246" elapsed="11.119941">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s3-t3" name="Get Stats for node 2" line="33">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:04.663511" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.865259" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:05.268181" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:05.270939" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:04.660745" elapsed="0.616105">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:05.277480" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:05.277909" elapsed="0.000062"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:04.660360" elapsed="0.617844">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:07.289623" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:07.491548" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:07.894470" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:07.896860" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:07.285582" elapsed="0.616580">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:07.902734" elapsed="0.000074"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:07.903126" elapsed="0.000048"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:07.284874" elapsed="0.618639">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:09.915766" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:10.118029" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:10.520922" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:10.523747" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:09.912185" elapsed="0.620702">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:10.534239" elapsed="0.000523"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:10.534922" elapsed="0.000024"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:09.911155" elapsed="0.623968">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:12.547473" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:12.748995" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:13.151380" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:13.153354" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:12.543363" elapsed="0.614891">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:13.158883" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:13.159221" elapsed="0.000029"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:12.542733" elapsed="0.616788">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:15.170994" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.372965" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.776193" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.778647" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:15.167481" elapsed="0.615864">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:15.783730" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:15.783957" elapsed="0.000031"/>
</kw>
<arg>openflow%3A2</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:15.166685" elapsed="0.617454">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:16:15.784286" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check Nodes Stats</arg>
<arg>openflow%3A2</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:16:04.654261" elapsed="11.130184">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-04-17T03:16:04.653572" elapsed="11.131125">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s3-t4" name="Get Stats for node 3" line="37">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:15.793196" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.995093" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:16.397989" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:16.400951" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:15.790842" elapsed="0.615142">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:16.406347" elapsed="0.000079"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:16.406622" elapsed="0.000031"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:15.790516" elapsed="0.616298">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:18.417885" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:18.620308" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:19.023255" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:19.026033" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:18.414251" elapsed="0.617299">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:19.032055" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:19.032547" elapsed="0.000054"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:18.413693" elapsed="0.619299">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:21.044262" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:21.246238" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:21.649091" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:21.651863" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:21.040608" elapsed="0.617171">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:21.658300" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:21.658703" elapsed="0.000048"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:21.040011" elapsed="0.619000">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:23.673185" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:23.874625" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:24.276811" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:24.279113" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:23.669700" elapsed="0.614497">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:24.284717" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:24.285101" elapsed="0.000047"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:23.668999" elapsed="0.616376">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Nodes Stats" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:26.293657" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:26.495663" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:26.898112" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:26.900662" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${RFC8040_NODES_API}/node=${node}</arg>
<arg>params=${RFC8040_OPERATIONAL_CONTENT}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:26.290408" elapsed="0.615438">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:26.906324" elapsed="0.000090"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:26.906778" elapsed="0.000238"/>
</kw>
<arg>openflow%3A3</arg>
<doc>A GET on the /node/${node} API is made and specific flow stat
strings are checked for existence.</doc>
<status status="FAIL" start="2026-04-17T03:16:26.289836" elapsed="0.617459">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:16:26.907588" level="FAIL">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check Nodes Stats</arg>
<arg>openflow%3A3</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:16:15.785990" elapsed="11.121821">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Get the stats for a node</doc>
<status status="FAIL" start="2026-04-17T03:16:15.785045" elapsed="11.123267">Keyword 'Check Nodes Stats' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:16:26.909289" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:16:26.909171" elapsed="0.000197"/>
</kw>
<doc>Test suite for RESTCONF statistics</doc>
<status status="FAIL" start="2026-04-17T03:15:42.341014" elapsed="44.568405"/>
</suite>
<suite id="s1-s2-s4" name="040 Restconf Frm" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/MD_SAL_NSF_OF13/040_restconf_frm.robot">
<kw name="Create Session" owner="RequestsLibrary" type="SETUP">
<msg time="2026-04-17T03:16:26.942128" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c4a3a10&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-04-17T03:16:26.941741" elapsed="0.000568"/>
</kw>
<test id="s1-s2-s4-t1" name="Add a flow - Sending IPv4 Dest Address and Eth type" line="23">
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:26.946060" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:27.147888" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:27.552554" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:27.556770" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139</arg>
<arg>headers=${HEADERS_XML}</arg>
<arg>data=${BODY1}</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:26.942915" elapsed="0.624295">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Push a flow through REST-API</doc>
<status status="FAIL" start="2026-04-17T03:16:26.942405" elapsed="0.625377">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s4-t2" name="Verify after adding flow config - Sending IPv4 Dest Address and Eth type" line="31">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:27.571172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:27.772723" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:28.175665" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:28.178490" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=config</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:27.568819" elapsed="0.614072">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>139</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:28.183310" elapsed="0.000044"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:16:27.568280" elapsed="0.615362">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s4-t3" name="Verify after adding flow operational - Sending IPv4 Dest Address and Eth type" line="39">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:16:28.185732" level="INFO">${elements} = ['10.0.10.1']</msg>
<var>${elements}</var>
<arg>10.0.10.1</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:16:28.185027" elapsed="0.000761"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:28.195349" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:28.397085" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:28.799367" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:28.802145" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:28.192017" elapsed="0.614235">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:28.807307" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:28.806485" elapsed="0.000946"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:28.807684" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:28.807476" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:28.806434" elapsed="0.001414"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:28.808040" elapsed="0.000033"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:28.808444" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:28.808248" elapsed="0.000275"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:28.808154" elapsed="0.000408"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.10.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:28.191458" elapsed="0.617248">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:30.823565" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:31.026204" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:31.429625" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:31.432158" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:30.818872" elapsed="0.618743">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:31.438497" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:31.437888" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:31.438993" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:31.438694" elapsed="0.000420"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:31.437830" elapsed="0.001333"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:31.439453" elapsed="0.000050"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:31.440021" elapsed="0.000096"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:31.439752" elapsed="0.000446"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:31.439623" elapsed="0.000635"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.10.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:30.817766" elapsed="0.622671">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:33.451978" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:33.653909" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:34.056905" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:34.060034" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:33.448524" elapsed="0.616779">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:34.066258" elapsed="0.000156"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:34.065623" elapsed="0.000873"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:34.066681" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:34.066531" elapsed="0.000206"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:34.065560" elapsed="0.001198"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:34.066874" elapsed="0.000021"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:34.067145" elapsed="0.000020"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:34.067015" elapsed="0.000186"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:34.066952" elapsed="0.000276"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.10.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:33.447296" elapsed="0.620045">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:36.081228" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:36.282730" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:36.686421" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:36.689094" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:36.076365" elapsed="0.617866">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:36.695165" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:36.694553" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:36.695690" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:36.695364" elapsed="0.000449"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:36.694491" elapsed="0.001367"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:36.696114" elapsed="0.000046"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:36.696718" elapsed="0.000048"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:36.696443" elapsed="0.000402"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:36.696284" elapsed="0.000621"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.10.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:36.074984" elapsed="0.622143">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:38.708151" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:38.910266" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:39.312959" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:39.315358" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:38.704602" elapsed="0.615937">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:39.321137" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:39.320731" elapsed="0.000494"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:39.321477" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:39.321262" elapsed="0.000296"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:39.320689" elapsed="0.000899"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:39.321747" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:39.322105" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:39.321932" elapsed="0.000252"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:39.321851" elapsed="0.000371"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.10.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:38.703774" elapsed="0.618590">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:16:39.322608" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:16:28.186028" elapsed="11.136719">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:16:28.184256" elapsed="11.138773">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s4-t4" name="Modify a flow - Output to physical port#" line="49">
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:39.327448" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:39.528956" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:39.931509" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:39.933937" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139</arg>
<arg>headers=${HEADERS_XML}</arg>
<arg>data=${BODY2}</arg>
<arg>expected_status=204</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:39.323918" elapsed="0.615596">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Push a flow through REST-API</doc>
<status status="FAIL" start="2026-04-17T03:16:39.323326" elapsed="0.616720">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s4-t5" name="Verify after modifying flow config - Output to physical port#" line="58">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:39.943475" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:40.144834" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:40.547492" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:40.550557" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=config</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:39.941240" elapsed="0.614399">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>10.0.20.1</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:40.556100" elapsed="0.000061"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:16:39.940527" elapsed="0.616086">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s4-t6" name="Verify after modifying flow operational - Output to physical port#" line="66">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:16:40.558069" level="INFO">${elements} = ['10.0.20.1']</msg>
<var>${elements}</var>
<arg>10.0.20.1</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:16:40.557694" elapsed="0.000403"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:40.564662" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:40.766125" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:41.168614" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:41.170677" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:40.562193" elapsed="0.612022">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:41.174957" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:41.174496" elapsed="0.000571"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:41.175313" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:41.175110" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:41.174437" elapsed="0.001039"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:41.175664" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:41.176074" elapsed="0.000044"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:41.175864" elapsed="0.000318"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:41.175775" elapsed="0.000478"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:40.561678" elapsed="0.614771">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:43.189596" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:43.392819" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:43.796780" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:43.799228" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:43.185627" elapsed="0.618455">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:43.804872" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:43.804340" elapsed="0.000636"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:43.805231" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:43.805018" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:43.804283" elapsed="0.001110"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:43.805695" elapsed="0.000148"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:43.806258" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:43.806063" elapsed="0.000280"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:43.805943" elapsed="0.000442"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:43.184305" elapsed="0.622293">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:45.817538" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:46.020445" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:46.423129" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:46.425499" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:45.813770" elapsed="0.616174">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:46.430613" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:46.430156" elapsed="0.000551"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:46.430951" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:46.430746" elapsed="0.000285"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:46.430112" elapsed="0.000950"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:46.431231" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:46.431638" elapsed="0.000032"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:46.431453" elapsed="0.000271"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:46.431345" elapsed="0.000447"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:45.812894" elapsed="0.619052">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:48.441598" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:48.643837" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:49.047326" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:49.049792" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:48.437385" elapsed="0.617551">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:49.055944" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:49.055326" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:49.056457" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:49.056135" elapsed="0.000502"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:49.055269" elapsed="0.001416"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:49.056939" elapsed="0.000046"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:49.057497" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:49.057218" elapsed="0.000336"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:49.057096" elapsed="0.000487"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:48.436679" elapsed="0.621015">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:51.070095" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:51.271845" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:51.674621" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:51.676993" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:51.066768" elapsed="0.615417">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:51.683681" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:51.682507" elapsed="0.001323"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:51.684183" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:51.683888" elapsed="0.000531"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:51.682447" elapsed="0.002031"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:51.684714" elapsed="0.000022"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:51.684987" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:51.684855" elapsed="0.000188"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:51.684793" elapsed="0.000278"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
['10.0.20.1'] is verified to exist in the response</doc>
<status status="FAIL" start="2026-04-17T03:16:51.065437" elapsed="0.619747">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:16:51.685303" level="FAIL">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:16:40.558259" elapsed="11.127169">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:16:40.557141" elapsed="11.128486">Keyword 'Check For Elements At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s4-t7" name="Remove a flow - Output to physical port#" line="76">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:51.689746" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:51.891163" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:52.293781" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:52.296651" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2/flow=139</arg>
<arg>expected_status=204</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:51.687071" elapsed="0.614857">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Remove a flow</doc>
<status status="FAIL" start="2026-04-17T03:16:51.686609" elapsed="0.615657">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s4-t8" name="Verify after deleting flow config - Output to physical port#" line="83">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:52.307206" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:52.508966" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:52.911857" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:52.913953" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=config</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:52.303632" elapsed="0.613587">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>139</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:52.917593" elapsed="0.000038"/>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:16:52.302816" elapsed="0.615049">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s2-s4-t9" name="Verify after deleting flow operational - Output to physical port#" line="91">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:16:52.919191" level="INFO">${elements} = ['10.0.20.1']</msg>
<var>${elements}</var>
<arg>10.0.20.1</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:16:52.918742" elapsed="0.000486"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:52.932478" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:53.134118" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:53.537198" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:53.539804" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:52.929371" elapsed="0.614583">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:53.544623" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:53.544172" elapsed="0.000547"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:53.544985" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:53.544761" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:53.544124" elapsed="0.000973"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:16:53.545322" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:16:53.545263" elapsed="0.000150"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:53.545242" elapsed="0.000206"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:16:53.545180" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:53.545156" elapsed="0.000360"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:53.545688" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:53.546071" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:53.545884" elapsed="0.000270"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:53.545798" elapsed="0.000396"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:16:52.928577" elapsed="0.617787">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:55.562264" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:55.763719" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:56.166763" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:56.168947" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:55.559211" elapsed="0.614030">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:56.173915" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:56.173499" elapsed="0.000534"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:56.174306" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:56.174083" elapsed="0.000349"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:56.173452" elapsed="0.001023"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:16:56.174800" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:16:56.174725" elapsed="0.000141"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:56.174697" elapsed="0.000200"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:16:56.174588" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:56.174556" elapsed="0.000402"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:56.175130" elapsed="0.000032"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:56.175530" elapsed="0.000031"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:56.175321" elapsed="0.000361"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:56.175239" elapsed="0.000486"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:16:55.558575" elapsed="0.617294">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:16:58.192761" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:58.394574" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:58.797673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:58.800251" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:16:58.189169" elapsed="0.614944">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:16:58.804803" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:58.804321" elapsed="0.000577"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:58.805199" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:16:58.804937" elapsed="0.000387"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:58.804272" elapsed="0.001083"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:16:58.805594" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:16:58.805544" elapsed="0.000106"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:58.805525" elapsed="0.000158"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:16:58.805467" elapsed="0.000280"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:16:58.805441" elapsed="0.000342"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:58.805957" elapsed="0.000031"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:16:58.806340" elapsed="0.000030"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:16:58.806155" elapsed="0.000286"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:16:58.806069" elapsed="0.000412"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:16:58.188237" elapsed="0.618394">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:00.820412" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:01.022296" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:01.425176" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:01.427711" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:00.816790" elapsed="0.616518">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:17:01.433846" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:01.433516" elapsed="0.000397"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:01.434119" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:01.433941" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:01.433479" elapsed="0.000730"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:17:01.434368" elapsed="0.000033"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:17:01.434327" elapsed="0.000107"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:01.434312" elapsed="0.000145"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:17:01.434268" elapsed="0.000213"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:01.434251" elapsed="0.000252"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:01.434641" elapsed="0.000024"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:01.434923" elapsed="0.000021"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:17:01.434788" elapsed="0.000192"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:17:01.434724" elapsed="0.000283"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:17:00.815887" elapsed="0.619234">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check For Elements Not At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:03.451131" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:03.652830" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:04.055709" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:04.058308" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:03.448101" elapsed="0.615562">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-04-17T03:17:04.064243" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:04.063853" elapsed="0.000481"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:04.064589" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:04.064371" elapsed="0.000296"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:04.063811" elapsed="0.000886"/>
</if>
<if>
<branch type="IF" condition="&quot;${check_for_null}&quot; == &quot;True&quot;">
<if>
<branch type="IF" condition="${resp.status_code} == 404 or ${resp.status_code} == 409">
<return>
<status status="NOT RUN" start="2026-04-17T03:17:04.064904" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:17:04.064853" elapsed="0.000106"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:04.064834" elapsed="0.000156"/>
</if>
<status status="NOT RUN" start="2026-04-17T03:17:04.064775" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:04.064753" elapsed="0.000296"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:04.065211" elapsed="0.000030"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:04.065645" elapsed="0.000040"/>
</kw>
<var name="${i}"/>
<status status="NOT RUN" start="2026-04-17T03:17:04.065411" elapsed="0.000327"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="NOT RUN" start="2026-04-17T03:17:04.065313" elapsed="0.000465"/>
</for>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>A GET is made at the supplied ${uri} and every item in the list of
['10.0.20.1'] is verified to NOT exist in the response. If ${check_for_null} is True
return of 404 is treated as empty list. From Neon onwards, an empty list is always
returned as null, giving 404 on rest call.</doc>
<status status="FAIL" start="2026-04-17T03:17:03.447300" elapsed="0.618646">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:17:04.066286" level="FAIL">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>2s</arg>
<arg>Check For Elements Not At URI</arg>
<arg>${RFC8040_NODES_API}/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</arg>
<arg>${elements}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:16:52.919460" elapsed="11.147025">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Verify the flow</doc>
<status status="FAIL" start="2026-04-17T03:16:52.918142" elapsed="11.148601">Keyword 'Check For Elements Not At URI' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:17:04.067578" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:17:04.067346" elapsed="0.000334"/>
</kw>
<doc>Test suite for RESTCONF FRM</doc>
<status status="FAIL" start="2026-04-17T03:16:26.910034" elapsed="37.157695"/>
</suite>
<kw name="Stop Mininet" owner="Utils" type="TEARDOWN">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:04.070125" level="INFO">Stop the test on the base edition</msg>
<arg>Stop the test on the base edition</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:04.069707" elapsed="0.000495"/>
</kw>
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn_id}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:04.070953" elapsed="0.000218"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:04.071358" elapsed="0.000243"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:17:04.078686" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:17:04.071778" elapsed="0.007065"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:17:04.288738" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 6 links
......
*** Stopping 3 switches
s1 s2 s3 
*** Stopping 4 hosts
h1 h2 h3 h4 
*** Done
completed in 254.729 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${prompt}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:17:04.079123" elapsed="0.210251"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:04.289677" elapsed="0.002025"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-04-17T03:17:04.069258" elapsed="0.222529"/>
</kw>
<doc>Test suite for MD-SAL NSF mininet OF13</doc>
<status status="FAIL" start="2026-04-17T03:12:46.779806" elapsed="257.512021"/>
</suite>
<suite id="s1-s3" name="Stat Manager extended" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Flows_Additional_TCs/Stat_Manager_extended">
<kw name="Start Mininet" owner="Utils" type="SETUP">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:04.335524" level="INFO">Start the test on the base edition</msg>
<arg>Start the test on the base edition</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:04.335233" elapsed="0.000351"/>
</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-04-17T03:17:04.337986" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:04.337709" elapsed="0.000338"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:04.337670" elapsed="0.000404"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:04.338373" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:17:04.338543" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:17:04.338201" elapsed="0.000373"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:04.339100" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:17:04.338707" elapsed="0.000440"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:04.339681" level="INFO">${conn_id} = 11</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-04-17T03:17:04.339280" elapsed="0.000433"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:17:04.341167" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:17:04.341248" 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-04-17T03:17:04.340857" elapsed="0.000415"/>
</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-04-17T03:17:04.341451" elapsed="0.000352"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:17:04.342663" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:17:04.985107" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:17:04 UTC 2026

  System load:  0.19               Processes:             110
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:12:49 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:17:04.342284" elapsed="0.643000"/>
</kw>
<msg time="2026-04-17T03:17:04.985375" 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="PASS" start="2026-04-17T03:17:04.341950" elapsed="0.643538"/>
</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="PASS" start="2026-04-17T03:17:04.339913" elapsed="0.645703"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:04.986121" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:17:06.125694" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:06.126098" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:17:06.126204" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:17:04.985850" elapsed="1.140413"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:06.126723" elapsed="0.000545"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:06.128283" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:06.127631" elapsed="0.000808"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:17:06.128926" elapsed="0.000040"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:17:06.128623" elapsed="0.000413"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:06.128570" elapsed="0.000518"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:17:06.129515" elapsed="0.000111"/>
</return>
<status status="PASS" start="2026-04-17T03:17:06.129209" elapsed="0.000498"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:06.129174" elapsed="0.000591"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:17:06.129844" elapsed="0.000032"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:17:06.134739" elapsed="0.000337"/>
</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="PASS" start="2026-04-17T03:17:06.135215" elapsed="0.000184"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:06.135521" elapsed="0.000102"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:17:06.130732" elapsed="0.004945"/>
</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="PASS" start="2026-04-17T03:17:04.337151" elapsed="1.798619"/>
</kw>
<msg time="2026-04-17T03:17:06.135827" 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="PASS" start="2026-04-17T03:17:04.336550" elapsed="1.799333"/>
</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="PASS" start="2026-04-17T03:17:04.336054" elapsed="1.800005"/>
</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-04-17T03:17:06.142545" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:06.141713" elapsed="0.000921"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:06.141670" elapsed="0.000994"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:06.144458" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:17:06.144595" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:17:06.143729" elapsed="0.000895"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:06.145239" 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.171.160" 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-04-17T03:17:06.144760" elapsed="0.000529"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:06.146892" level="INFO">${conn_id} = 13</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-04-17T03:17:06.145464" elapsed="0.001457"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:17:06.147877" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:17:06.147960" 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-04-17T03:17:06.147570" elapsed="0.000415"/>
</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-04-17T03:17:06.148168" elapsed="0.000400"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:17:06.149463" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:17:06.537971" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:17:04 UTC 2026

  System load:  0.19               Processes:             110
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:17:04 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:17:06.149083" elapsed="0.389058"/>
</kw>
<msg time="2026-04-17T03:17:06.538266" 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="PASS" start="2026-04-17T03:17:06.148714" elapsed="0.389643"/>
</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="PASS" start="2026-04-17T03:17:06.147148" elapsed="0.391349"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:06.538984" 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-04-17T03:17:06.581917" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:17:06.582453" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:17:06.582580" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:17:06.538718" elapsed="0.043935"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:06.583095" elapsed="0.000695"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:06.584942" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:06.584159" elapsed="0.000891"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:17:06.585697" elapsed="0.000057"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:17:06.585246" elapsed="0.000617"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:06.585189" elapsed="0.000750"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:17:06.586597" elapsed="0.000102"/>
</return>
<status status="PASS" start="2026-04-17T03:17:06.586114" elapsed="0.000700"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:06.586066" elapsed="0.000835"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:17:06.587015" elapsed="0.000049"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:17:06.592806" elapsed="0.000933"/>
</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="PASS" start="2026-04-17T03:17:06.594432" elapsed="0.000285"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:06.594847" elapsed="0.000108"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:17:06.588013" elapsed="0.006998"/>
</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="PASS" start="2026-04-17T03:17:06.137364" elapsed="0.457766"/>
</kw>
<msg time="2026-04-17T03:17:06.595192" 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="PASS" start="2026-04-17T03:17:06.136804" elapsed="0.458450"/>
</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="PASS" start="2026-04-17T03:17:06.136211" elapsed="0.459156"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:04.335783" elapsed="2.259684"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:06.596158" level="INFO">${mininet_conn_id} = 15</msg>
<var>${mininet_conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:17:06.595660" elapsed="0.000533"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:06.596815" level="INFO">${mininet_conn_id} = 15</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-04-17T03:17:06.596413" elapsed="0.000448"/>
</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-04-17T03:17:06.598917" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:17:06.599000" 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-04-17T03:17:06.598555" elapsed="0.000469"/>
</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-04-17T03:17:06.599159" elapsed="0.000362"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:17:06.600401" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:17:06.967579" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:17:04 UTC 2026

  System load:  0.19               Processes:             110
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:17:06 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:17:06.600041" elapsed="0.367708"/>
</kw>
<msg time="2026-04-17T03:17:06.967838" 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="PASS" start="2026-04-17T03:17:06.599695" elapsed="0.368226"/>
</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="PASS" start="2026-04-17T03:17:06.597928" elapsed="0.370113"/>
</kw>
<msg time="2026-04-17T03:17:06.968095" 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="PASS" start="2026-04-17T03:17:06.597489" elapsed="0.370653"/>
</kw>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:17:06.597046" elapsed="0.371175"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:06.968614" level="INFO">Executing command 'sudo ovs-vsctl set-manager ptcp:6644'.</msg>
<msg time="2026-04-17T03:17:07.021819" level="INFO">Command exited with return code 0.</msg>
<arg>sudo ovs-vsctl set-manager ptcp:6644</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:06.968467" elapsed="0.053635"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:17:07.061001" level="INFO">sudo mn --controller=remote,ip=10.30.170.85 --topo tree,1 --switch ovsk,protocols=OpenFlow13</msg>
<arg>${start}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:17:07.022645" elapsed="0.038475"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:17:07.220866" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6653
Unable to contact the remote controller at 10.30.170.85:6633
Setting remote controller to 10.30.170.85:6653
*** Adding hosts:
h1 h2 
*** Adding switches:
s1 
*** Adding links:
(s1, h1) (s1, h2) 
*** Configuring hosts
h1 h2 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:17:07.061419" elapsed="0.159710"/>
</kw>
<doc>Basic setup/cleanup work that can be done safely before any system
is run.</doc>
<status status="PASS" start="2026-04-17T03:17:04.334770" elapsed="2.887346"/>
</kw>
<suite id="s1-s3-s1" name="010 SM add upd del flows" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Flows_Additional_TCs/Stat_Manager_extended/010_SM_add_upd_del_flows.robot">
<kw name="Initialization Phase" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:07.408541" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c236690&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-04-17T03:17:07.407880" elapsed="0.001066"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:07.422767" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:07.624955" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:08.027653" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:08.030358" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:07.418875" elapsed="0.617261">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:08.036754" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:08.036942" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:08.037099" elapsed="0.000021"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:07.418701" elapsed="0.618481">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:07.415004" elapsed="0.622250">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:07.411051" elapsed="0.626325">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:09.048251" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:09.249827" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:09.652618" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:09.655369" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:09.044987" elapsed="0.616159">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:09.661749" elapsed="0.000072"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:09.662228" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:09.662926" elapsed="0.000062"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:09.044804" elapsed="0.618326">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:09.041898" elapsed="0.621396">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:09.038353" elapsed="0.625243">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:10.677025" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:10.878852" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:11.281261" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:11.283497" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:10.673600" elapsed="0.614964">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:11.289042" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:11.289286" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:11.289529" elapsed="0.000030"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:10.673367" elapsed="0.616276">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:10.668711" elapsed="0.621025">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:10.664667" elapsed="0.625226">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:12.302296" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:12.504112" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:12.906578" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:12.908668" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:12.298802" elapsed="0.614485">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:12.913767" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:12.915771" elapsed="0.000087"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:12.916232" elapsed="0.000049"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:12.298618" elapsed="0.617832">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:12.294265" elapsed="0.622329">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:12.290861" elapsed="0.625975">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:13.928616" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:14.130184" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:14.532447" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:14.535085" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:13.925183" elapsed="0.615307">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:14.540887" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:14.541140" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:14.541369" elapsed="0.000051"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:13.924999" elapsed="0.616506">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:13.921172" elapsed="0.620428">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:13.917851" elapsed="0.623907">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:15.553913" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:15.755449" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:16.157970" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:16.160586" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:15.550120" elapsed="0.613896">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:16.164478" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:16.164750" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:16.165009" elapsed="0.000032"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:15.549911" elapsed="0.615219">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:15.546021" elapsed="0.619209">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:15.542743" elapsed="0.622677">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:17.176244" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:17.377874" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:17.780697" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:17.783039" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:17.172745" elapsed="0.616949">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:17.790241" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:17.790682" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:17.791066" elapsed="0.000050"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:17.172565" elapsed="0.618736">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:17.169811" elapsed="0.621675">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:17.166440" elapsed="0.625303">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:18.805219" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:19.007058" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:19.410325" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:19.412743" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:18.801710" elapsed="0.616652">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:19.419248" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:19.419553" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:19.419801" elapsed="0.000032"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:18.801415" elapsed="0.618513">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:18.797207" elapsed="0.622818">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:18.793966" elapsed="0.626248">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:20.431429" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:20.632795" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:21.035355" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:21.037889" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:20.427783" elapsed="0.613626">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:21.041770" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:21.042016" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:21.042243" elapsed="0.000030"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:20.427563" elapsed="0.614795">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:20.424638" elapsed="0.617854">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:20.421200" elapsed="0.621457">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:22.051941" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:22.253713" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:22.656588" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:22.659071" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:22.048444" elapsed="0.614856">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:22.663699" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:22.663946" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:22.664168" elapsed="0.000029"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:22.048248" elapsed="0.616031">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:22.045723" elapsed="0.618645">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:22.043499" elapsed="0.621052">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:17:22.664689" level="FAIL">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10x</arg>
<arg>1s</arg>
<arg>FlowLib.Check Switches In Inventory</arg>
<arg>${1}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:17:07.409316" elapsed="15.255537">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>dpctl dump-flows -O OpenFlow13</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:22.665085" elapsed="0.000030"/>
</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-04-17T03:17:22.665304" elapsed="0.000028"/>
</kw>
<doc>Initiate tcp connection with controller</doc>
<status status="FAIL" start="2026-04-17T03:17:07.407033" elapsed="15.258444">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<test id="s1-s3-s1-t1" name="Test Add Flows Group 0" line="37">
<doc>Add all flows and waits for SM to collect data</doc>
<status status="FAIL" start="2026-04-17T03:17:22.665596" elapsed="0.000714">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t2" name="Test Is Flow 1 Added" line="51">
<status status="FAIL" start="2026-04-17T03:17:22.666623" elapsed="0.000387">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t3" name="Test Is Flow 2 Added" line="53">
<status status="FAIL" start="2026-04-17T03:17:22.667240" elapsed="0.000503">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t4" name="Test Is Flow 3 Added" line="55">
<status status="FAIL" start="2026-04-17T03:17:22.668070" elapsed="0.000553">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t5" name="Test Is Flow 4 Added" line="57">
<status status="FAIL" start="2026-04-17T03:17:22.672875" elapsed="0.001056">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t6" name="Test Is Flow 5 Added" line="59">
<status status="FAIL" start="2026-04-17T03:17:22.674358" elapsed="0.000391">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t7" name="Test Is Flow 6 Added" line="61">
<status status="FAIL" start="2026-04-17T03:17:22.675040" elapsed="0.000284">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t8" name="Test Is Flow 7 Added" line="63">
<status status="FAIL" start="2026-04-17T03:17:22.675606" elapsed="0.000415">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t9" name="Test Is Flow 8 Added" line="65">
<status status="FAIL" start="2026-04-17T03:17:22.676357" elapsed="0.000379">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t10" name="Test Is Flow 9 Added" line="67">
<status status="FAIL" start="2026-04-17T03:17:22.677154" elapsed="0.000393">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t11" name="Test Is Flow 10 Added" line="69">
<status status="FAIL" start="2026-04-17T03:17:22.677872" elapsed="0.000387">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t12" name="Test Is Flow 11 Added" line="71">
<status status="FAIL" start="2026-04-17T03:17:22.678607" elapsed="0.000380">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t13" name="Test Is Flow 14 Added" line="73">
<status status="FAIL" start="2026-04-17T03:17:22.679329" elapsed="0.000436">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t14" name="Test Is Flow 15 Added" line="75">
<status status="FAIL" start="2026-04-17T03:17:22.680007" elapsed="0.000867">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t15" name="Test Is Flow 16 Added" line="77">
<status status="FAIL" start="2026-04-17T03:17:22.681111" elapsed="0.000403">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t16" name="Test Is Flow 17 Added" line="79">
<status status="FAIL" start="2026-04-17T03:17:22.681761" elapsed="0.000385">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t17" name="Test Is Flow 18 Added" line="81">
<status status="FAIL" start="2026-04-17T03:17:22.682490" elapsed="0.000426">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t18" name="Test Is Flow 19 Added" line="83">
<status status="FAIL" start="2026-04-17T03:17:22.683277" elapsed="0.000403">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t19" name="Test Is Flow 20 Added" line="85">
<status status="FAIL" start="2026-04-17T03:17:22.683899" elapsed="0.000468">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t20" name="Test Is Flow 21 Added" line="87">
<status status="FAIL" start="2026-04-17T03:17:22.684615" elapsed="0.000377">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t21" name="Test Is Flow 22 Added" line="89">
<status status="FAIL" start="2026-04-17T03:17:22.685166" elapsed="0.000299">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t22" name="Test Is Flow 23 Added" line="91">
<status status="FAIL" start="2026-04-17T03:17:22.685632" elapsed="0.000325">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t23" name="Test Is Flow 24 Added" line="93">
<status status="FAIL" start="2026-04-17T03:17:22.686127" elapsed="0.000295">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t24" name="Test Is Flow 25 Added" line="95">
<status status="FAIL" start="2026-04-17T03:17:22.686589" elapsed="0.000271">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t25" name="Test Is Flow 31 Added" line="97">
<status status="FAIL" start="2026-04-17T03:17:22.687020" elapsed="0.000262">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t26" name="Test Is Flow 36 Added" line="99">
<status status="FAIL" start="2026-04-17T03:17:22.687519" elapsed="0.002291">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t27" name="Test Is Flow 38 Added" line="101">
<status status="FAIL" start="2026-04-17T03:17:22.690047" elapsed="0.000279">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t28" name="Test Is Flow 43 Added" line="103">
<status status="FAIL" start="2026-04-17T03:17:22.690510" elapsed="0.000268">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t29" name="Test Is Flow 45 Added" line="105">
<status status="FAIL" start="2026-04-17T03:17:22.690940" elapsed="0.000272">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t30" name="Test Is Flow 101 Added" line="107">
<status status="FAIL" start="2026-04-17T03:17:22.691372" elapsed="0.000282">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t31" name="Test Is Flow 102 Added" line="109">
<status status="FAIL" start="2026-04-17T03:17:22.691812" elapsed="0.000261">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t32" name="Test Is Flow 103 Added" line="111">
<status status="FAIL" start="2026-04-17T03:17:22.692231" elapsed="0.000326">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t33" name="Test Is Flow 104 Added" line="113">
<status status="FAIL" start="2026-04-17T03:17:22.692842" elapsed="0.000286">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t34" name="Test Is Flow 105 Added" line="115">
<status status="FAIL" start="2026-04-17T03:17:22.693290" elapsed="0.000380">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t35" name="Test Is Flow 106 Added" line="117">
<status status="FAIL" start="2026-04-17T03:17:22.693920" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t36" name="Test Is Flow 107 Added" line="119">
<status status="FAIL" start="2026-04-17T03:17:22.694507" elapsed="0.000311">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t37" name="Test Is Flow 108 Added" line="121">
<status status="FAIL" start="2026-04-17T03:17:22.695067" elapsed="0.000310">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t38" name="Test Is Flow 109 Added" line="123">
<status status="FAIL" start="2026-04-17T03:17:22.695637" elapsed="0.000310">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t39" name="Test Is Flow 110 Added" line="125">
<status status="FAIL" start="2026-04-17T03:17:22.696214" elapsed="0.000332">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t40" name="Test Is Flow 113 Added" line="127">
<status status="FAIL" start="2026-04-17T03:17:22.696787" elapsed="0.000840">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t41" name="Test Is Flow 156 Added" line="129">
<status status="FAIL" start="2026-04-17T03:17:22.697798" elapsed="0.000265">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t42" name="Test Is Flow 201 Added" line="131">
<status status="FAIL" start="2026-04-17T03:17:22.698221" elapsed="0.000290">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t43" name="Test Is Flow 202 Added" line="133">
<status status="FAIL" start="2026-04-17T03:17:22.698679" elapsed="0.000266">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t44" name="Test Is Flow 203 Added" line="135">
<status status="FAIL" start="2026-04-17T03:17:22.699105" elapsed="0.000340">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t45" name="Test Is Flow 204 Added" line="137">
<status status="FAIL" start="2026-04-17T03:17:22.699614" elapsed="0.000266">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t46" name="Test Is Flow 205 Added" line="139">
<status status="FAIL" start="2026-04-17T03:17:22.700039" elapsed="0.000263">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t47" name="Test Is Flow 206 Added" line="141">
<status status="FAIL" start="2026-04-17T03:17:22.700512" elapsed="0.000333">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t48" name="Test Is Flow 209 Added" line="143">
<status status="FAIL" start="2026-04-17T03:17:22.701014" elapsed="0.000265">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t49" name="Test Is Flow 214 Added" line="145">
<status status="FAIL" start="2026-04-17T03:17:22.701452" elapsed="0.000264">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t50" name="Test Is Flow 218 Added" line="147">
<status status="FAIL" start="2026-04-17T03:17:22.701874" elapsed="0.000263">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t51" name="Test Is Flow 219 Added" line="149">
<status status="FAIL" start="2026-04-17T03:17:22.702294" elapsed="0.000809">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t52" name="Test Is Flow 220 Added" line="151">
<status status="FAIL" start="2026-04-17T03:17:22.703820" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t53" name="Test Is Flow 221 Added" line="153">
<status status="FAIL" start="2026-04-17T03:17:22.704398" elapsed="0.000321">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t54" name="Test Is Flow 222 Added" line="155">
<status status="FAIL" start="2026-04-17T03:17:22.705013" elapsed="0.000306">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t55" name="Test Is Flow 223 Added" line="157">
<status status="FAIL" start="2026-04-17T03:17:22.705588" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t56" name="Test Is Flow 224 Added" line="159">
<status status="FAIL" start="2026-04-17T03:17:22.706149" elapsed="0.000331">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t57" name="Test Is Flow 225 Added" line="161">
<status status="FAIL" start="2026-04-17T03:17:22.706730" elapsed="0.000314">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t58" name="Test Is Flow 550 Added" line="163">
<status status="FAIL" start="2026-04-17T03:17:22.707289" elapsed="0.000298">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t59" name="Test Update Flows Group 0" line="165">
<doc>Update all flows and waits for SM to collect data</doc>
<status status="FAIL" start="2026-04-17T03:17:22.707746" elapsed="0.000339">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t60" name="Test Is Flow 1 Updated" line="183">
<status status="FAIL" start="2026-04-17T03:17:22.708248" elapsed="0.000295">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t61" name="Test Is Flow 2 Updated" line="185">
<status status="FAIL" start="2026-04-17T03:17:22.708734" elapsed="0.000289">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t62" name="Test Is Flow 3 Updated" line="187">
<status status="FAIL" start="2026-04-17T03:17:22.709188" elapsed="0.000340">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t63" name="Test Is Flow 4 Updated" line="189">
<status status="FAIL" start="2026-04-17T03:17:22.709698" elapsed="0.000264">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t64" name="Test Is Flow 5 Updated" line="191">
<status status="FAIL" start="2026-04-17T03:17:22.710120" elapsed="0.000605">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t65" name="Test Is Flow 6 Updated" line="193">
<status status="FAIL" start="2026-04-17T03:17:22.710887" elapsed="0.000265">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t66" name="Test Is Flow 7 Updated" line="195">
<status status="FAIL" start="2026-04-17T03:17:22.711311" elapsed="0.000342">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t67" name="Test Is Flow 8 Updated" line="197">
<status status="FAIL" start="2026-04-17T03:17:22.711821" elapsed="0.000263">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t68" name="Test Is Flow 9 Updated" line="199">
<status status="FAIL" start="2026-04-17T03:17:22.712241" elapsed="0.000355">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t69" name="Test Is Flow 10 Updated" line="201">
<status status="FAIL" start="2026-04-17T03:17:22.712843" elapsed="0.000378">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t70" name="Test Is Flow 11 Updated" line="203">
<status status="FAIL" start="2026-04-17T03:17:22.713492" elapsed="0.000310">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t71" name="Test Is Flow 14 Updated" line="205">
<status status="FAIL" start="2026-04-17T03:17:22.714052" elapsed="0.000313">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t72" name="Test Is Flow 15 Updated" line="207">
<status status="FAIL" start="2026-04-17T03:17:22.714627" elapsed="0.000306">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t73" name="Test Is Flow 16 Updated" line="209">
<status status="FAIL" start="2026-04-17T03:17:22.715180" elapsed="0.000322">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t74" name="Test Is Flow 17 Updated" line="211">
<status status="FAIL" start="2026-04-17T03:17:22.715747" elapsed="0.000304">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t75" name="Test Is Flow 18 Updated" line="213">
<status status="FAIL" start="2026-04-17T03:17:22.716328" elapsed="0.000290">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t76" name="Test Is Flow 19 Updated" line="215">
<status status="FAIL" start="2026-04-17T03:17:22.716779" elapsed="0.000291">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t77" name="Test Is Flow 20 Updated" line="217">
<status status="FAIL" start="2026-04-17T03:17:22.717237" elapsed="0.000298">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t78" name="Test Is Flow 21 Updated" line="219">
<status status="FAIL" start="2026-04-17T03:17:22.717755" elapsed="0.000269">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t79" name="Test Is Flow 22 Updated" line="221">
<status status="FAIL" start="2026-04-17T03:17:22.718182" elapsed="0.000479">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t80" name="Test Is Flow 23 Updated" line="223">
<status status="FAIL" start="2026-04-17T03:17:22.718881" elapsed="0.000270">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t81" name="Test Is Flow 24 Updated" line="225">
<status status="FAIL" start="2026-04-17T03:17:22.719309" elapsed="0.000290">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t82" name="Test Is Flow 25 Updated" line="227">
<status status="FAIL" start="2026-04-17T03:17:22.719758" elapsed="0.000261">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t83" name="Test Is Flow 31 Updated" line="229">
<status status="FAIL" start="2026-04-17T03:17:22.720177" elapsed="0.000333">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t84" name="Test Is Flow 36 Updated" line="231">
<status status="FAIL" start="2026-04-17T03:17:22.720759" elapsed="0.000349">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t85" name="Test Is Flow 38 Updated" line="233">
<status status="FAIL" start="2026-04-17T03:17:22.721359" elapsed="0.000330">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t86" name="Test Is Flow 43 Updated" line="235">
<status status="FAIL" start="2026-04-17T03:17:22.721938" elapsed="0.000950">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t87" name="Test Is Flow 45 Updated" line="237">
<status status="FAIL" start="2026-04-17T03:17:22.723189" elapsed="0.000344">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t88" name="Test Is Flow 101 Updated" line="239">
<status status="FAIL" start="2026-04-17T03:17:22.723832" elapsed="0.000320">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t89" name="Test Is Flow 102 Updated" line="241">
<status status="FAIL" start="2026-04-17T03:17:22.724445" elapsed="0.000327">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t90" name="Test Is Flow 103 Updated" line="243">
<status status="FAIL" start="2026-04-17T03:17:22.725032" elapsed="0.000310">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t91" name="Test Is Flow 104 Updated" line="245">
<status status="FAIL" start="2026-04-17T03:17:22.725604" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t92" name="Test Is Flow 105 Updated" line="247">
<status status="FAIL" start="2026-04-17T03:17:22.726160" elapsed="0.000468">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t93" name="Test Is Flow 106 Updated" line="249">
<status status="FAIL" start="2026-04-17T03:17:22.726882" elapsed="0.000311">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t94" name="Test Is Flow 107 Updated" line="251">
<status status="FAIL" start="2026-04-17T03:17:22.727464" elapsed="0.000325">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t95" name="Test Is Flow 108 Updated" line="253">
<status status="FAIL" start="2026-04-17T03:17:22.727955" elapsed="0.000281">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t96" name="Test Is Flow 109 Updated" line="255">
<status status="FAIL" start="2026-04-17T03:17:22.728463" elapsed="0.000324">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t97" name="Test Is Flow 110 Updated" line="257">
<status status="FAIL" start="2026-04-17T03:17:22.729078" elapsed="0.000327">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t98" name="Test Is Flow 113 Updated" line="259">
<status status="FAIL" start="2026-04-17T03:17:22.729656" elapsed="0.000311">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t99" name="Test Is Flow 156 Updated" line="261">
<status status="FAIL" start="2026-04-17T03:17:22.730211" elapsed="0.000333">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t100" name="Test Is Flow 201 Updated" line="263">
<status status="FAIL" start="2026-04-17T03:17:22.730801" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t101" name="Test Is Flow 202 Updated" line="265">
<status status="FAIL" start="2026-04-17T03:17:22.731363" elapsed="0.000337">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t102" name="Test Is Flow 203 Updated" line="267">
<status status="FAIL" start="2026-04-17T03:17:22.731866" elapsed="0.000593">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t103" name="Test Is Flow 204 Updated" line="269">
<status status="FAIL" start="2026-04-17T03:17:22.732733" elapsed="0.000351">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t104" name="Test Is Flow 205 Updated" line="271">
<status status="FAIL" start="2026-04-17T03:17:22.733329" elapsed="0.000332">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t105" name="Test Is Flow 206 Updated" line="273">
<status status="FAIL" start="2026-04-17T03:17:22.733909" elapsed="0.000312">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t106" name="Test Is Flow 209 Updated" line="275">
<status status="FAIL" start="2026-04-17T03:17:22.734479" elapsed="0.000317">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t107" name="Test Is Flow 214 Updated" line="277">
<status status="FAIL" start="2026-04-17T03:17:22.735038" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t108" name="Test Is Flow 218 Updated" line="279">
<status status="FAIL" start="2026-04-17T03:17:22.735608" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t109" name="Test Is Flow 219 Updated" line="281">
<status status="FAIL" start="2026-04-17T03:17:22.736173" elapsed="0.000327">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t110" name="Test Is Flow 220 Updated" line="283">
<status status="FAIL" start="2026-04-17T03:17:22.736710" elapsed="0.000302">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t111" name="Test Is Flow 221 Updated" line="285">
<status status="FAIL" start="2026-04-17T03:17:22.737173" elapsed="0.000289">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t112" name="Test Is Flow 222 Updated" line="287">
<status status="FAIL" start="2026-04-17T03:17:22.737631" elapsed="0.000266">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t113" name="Test Is Flow 223 Updated" line="289">
<status status="FAIL" start="2026-04-17T03:17:22.738056" elapsed="0.000265">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t114" name="Test Is Flow 224 Updated" line="291">
<status status="FAIL" start="2026-04-17T03:17:22.738548" elapsed="0.000318">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t115" name="Test Is Flow 225 Updated" line="293">
<status status="FAIL" start="2026-04-17T03:17:22.739115" elapsed="0.000332">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t116" name="Test Is Flow 550 Updated" line="295">
<status status="FAIL" start="2026-04-17T03:17:22.739698" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t117" name="Test Delete Flows Group 0" line="297">
<doc>Delete all flows and waits for SM to collect data</doc>
<status status="FAIL" start="2026-04-17T03:17:22.740288" elapsed="0.000405">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t118" name="Test Is Flow 1 Deleted" line="310">
<status status="FAIL" start="2026-04-17T03:17:22.740962" elapsed="0.000308">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t119" name="Test Is Flow 2 Deleted" line="312">
<status status="FAIL" start="2026-04-17T03:17:22.741539" elapsed="0.000306">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t120" name="Test Is Flow 3 Deleted" line="314">
<status status="FAIL" start="2026-04-17T03:17:22.742094" elapsed="0.000338">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t121" name="Test Is Flow 4 Deleted" line="316">
<status status="FAIL" start="2026-04-17T03:17:22.742687" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t122" name="Test Is Flow 5 Deleted" line="318">
<status status="FAIL" start="2026-04-17T03:17:22.743256" elapsed="0.000333">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t123" name="Test Is Flow 6 Deleted" line="320">
<status status="FAIL" start="2026-04-17T03:17:22.743837" elapsed="0.000312">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t124" name="Test Is Flow 7 Deleted" line="322">
<status status="FAIL" start="2026-04-17T03:17:22.744356" elapsed="0.000291">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t125" name="Test Is Flow 8 Deleted" line="324">
<status status="FAIL" start="2026-04-17T03:17:22.744807" elapsed="0.000299">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t126" name="Test Is Flow 9 Deleted" line="326">
<status status="FAIL" start="2026-04-17T03:17:22.745265" elapsed="0.000288">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t127" name="Test Is Flow 10 Deleted" line="328">
<status status="FAIL" start="2026-04-17T03:17:22.745720" elapsed="0.000268">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t128" name="Test Is Flow 11 Deleted" line="330">
<status status="FAIL" start="2026-04-17T03:17:22.746146" elapsed="0.000334">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t129" name="Test Is Flow 14 Deleted" line="332">
<status status="FAIL" start="2026-04-17T03:17:22.746733" elapsed="0.000318">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t130" name="Test Is Flow 15 Deleted" line="334">
<status status="FAIL" start="2026-04-17T03:17:22.747304" elapsed="0.000332">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t131" name="Test Is Flow 16 Deleted" line="336">
<status status="FAIL" start="2026-04-17T03:17:22.747927" elapsed="0.000320">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t132" name="Test Is Flow 17 Deleted" line="338">
<status status="FAIL" start="2026-04-17T03:17:22.748509" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t133" name="Test Is Flow 18 Deleted" line="340">
<status status="FAIL" start="2026-04-17T03:17:22.749091" elapsed="0.000340">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t134" name="Test Is Flow 19 Deleted" line="342">
<status status="FAIL" start="2026-04-17T03:17:22.749692" elapsed="0.000314">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t135" name="Test Is Flow 20 Deleted" line="344">
<status status="FAIL" start="2026-04-17T03:17:22.750258" elapsed="0.000345">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t136" name="Test Is Flow 21 Deleted" line="346">
<status status="FAIL" start="2026-04-17T03:17:22.750854" elapsed="0.000314">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t137" name="Test Is Flow 22 Deleted" line="348">
<status status="FAIL" start="2026-04-17T03:17:22.751413" elapsed="0.000276">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t138" name="Test Is Flow 23 Deleted" line="350">
<status status="FAIL" start="2026-04-17T03:17:22.751848" elapsed="0.000274">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t139" name="Test Is Flow 24 Deleted" line="352">
<status status="FAIL" start="2026-04-17T03:17:22.752280" elapsed="0.000375">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t140" name="Test Is Flow 25 Deleted" line="354">
<status status="FAIL" start="2026-04-17T03:17:22.752913" elapsed="0.000669">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t141" name="Test Is Flow 31 Deleted" line="356">
<status status="FAIL" start="2026-04-17T03:17:22.753844" elapsed="0.000313">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t142" name="Test Is Flow 36 Deleted" line="358">
<status status="FAIL" start="2026-04-17T03:17:22.754430" elapsed="0.000318">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t143" name="Test Is Flow 38 Deleted" line="360">
<status status="FAIL" start="2026-04-17T03:17:22.754999" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t144" name="Test Is Flow 43 Deleted" line="362">
<status status="FAIL" start="2026-04-17T03:17:22.755592" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t145" name="Test Is Flow 45 Deleted" line="364">
<status status="FAIL" start="2026-04-17T03:17:22.756194" elapsed="0.000337">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t146" name="Test Is Flow 101 Deleted" line="366">
<status status="FAIL" start="2026-04-17T03:17:22.756786" elapsed="0.000333">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t147" name="Test Is Flow 102 Deleted" line="368">
<status status="FAIL" start="2026-04-17T03:17:22.757369" elapsed="0.000340">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t148" name="Test Is Flow 103 Deleted" line="370">
<status status="FAIL" start="2026-04-17T03:17:22.757961" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t149" name="Test Is Flow 104 Deleted" line="372">
<status status="FAIL" start="2026-04-17T03:17:22.758546" elapsed="0.000317">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t150" name="Test Is Flow 105 Deleted" line="374">
<status status="FAIL" start="2026-04-17T03:17:22.759112" elapsed="0.000336">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t151" name="Test Is Flow 106 Deleted" line="376">
<status status="FAIL" start="2026-04-17T03:17:22.759699" elapsed="0.000277">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t152" name="Test Is Flow 107 Deleted" line="378">
<status status="FAIL" start="2026-04-17T03:17:22.760134" elapsed="0.000324">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t153" name="Test Is Flow 108 Deleted" line="380">
<status status="FAIL" start="2026-04-17T03:17:22.760724" elapsed="0.000360">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t154" name="Test Is Flow 109 Deleted" line="382">
<status status="FAIL" start="2026-04-17T03:17:22.761345" elapsed="0.000331">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t155" name="Test Is Flow 110 Deleted" line="384">
<status status="FAIL" start="2026-04-17T03:17:22.761932" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t156" name="Test Is Flow 113 Deleted" line="386">
<status status="FAIL" start="2026-04-17T03:17:22.762517" elapsed="0.000312">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t157" name="Test Is Flow 156 Deleted" line="388">
<status status="FAIL" start="2026-04-17T03:17:22.763086" elapsed="0.000334">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t158" name="Test Is Flow 201 Deleted" line="390">
<status status="FAIL" start="2026-04-17T03:17:22.763660" elapsed="0.000272">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t159" name="Test Is Flow 202 Deleted" line="392">
<status status="FAIL" start="2026-04-17T03:17:22.764119" elapsed="0.000324">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t160" name="Test Is Flow 203 Deleted" line="394">
<status status="FAIL" start="2026-04-17T03:17:22.764686" elapsed="0.000334">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t161" name="Test Is Flow 204 Deleted" line="396">
<status status="FAIL" start="2026-04-17T03:17:22.765276" elapsed="0.000333">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t162" name="Test Is Flow 205 Deleted" line="398">
<status status="FAIL" start="2026-04-17T03:17:22.765860" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t163" name="Test Is Flow 206 Deleted" line="400">
<status status="FAIL" start="2026-04-17T03:17:22.766455" elapsed="0.000319">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t164" name="Test Is Flow 209 Deleted" line="402">
<status status="FAIL" start="2026-04-17T03:17:22.767030" elapsed="0.000319">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t165" name="Test Is Flow 214 Deleted" line="404">
<status status="FAIL" start="2026-04-17T03:17:22.767620" elapsed="0.000318">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t166" name="Test Is Flow 218 Deleted" line="406">
<status status="FAIL" start="2026-04-17T03:17:22.768188" elapsed="0.000331">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t167" name="Test Is Flow 219 Deleted" line="408">
<status status="FAIL" start="2026-04-17T03:17:22.768778" elapsed="0.000346">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t168" name="Test Is Flow 220 Deleted" line="410">
<status status="FAIL" start="2026-04-17T03:17:22.769369" elapsed="0.000335">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t169" name="Test Is Flow 221 Deleted" line="412">
<status status="FAIL" start="2026-04-17T03:17:22.769936" elapsed="0.000274">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t170" name="Test Is Flow 222 Deleted" line="414">
<status status="FAIL" start="2026-04-17T03:17:22.770371" elapsed="0.000290">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t171" name="Test Is Flow 223 Deleted" line="416">
<status status="FAIL" start="2026-04-17T03:17:22.770819" elapsed="0.000282">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t172" name="Test Is Flow 224 Deleted" line="418">
<status status="FAIL" start="2026-04-17T03:17:22.771258" elapsed="0.000360">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t173" name="Test Is Flow 225 Deleted" line="420">
<status status="FAIL" start="2026-04-17T03:17:22.771908" elapsed="0.000319">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s1-t174" name="Test Is Flow 550 Deleted" line="422">
<status status="FAIL" start="2026-04-17T03:17:22.772505" elapsed="0.000321">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:17:22.774114" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:17:22.773954" elapsed="0.000301"/>
</kw>
<doc>Test suite for Stats Manager flows collection</doc>
<status status="FAIL" start="2026-04-17T03:17:07.222261" elapsed="15.552037">Suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</suite>
<suite id="s1-s3-s2" name="020 SM sal add upd del flows" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Flows_Additional_TCs/Stat_Manager_extended/020_SM_sal_add_upd_del_flows.robot">
<kw name="Initialization Phase" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:22.827999" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c2c9490&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-04-17T03:17:22.827636" elapsed="0.000546"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:22.835285" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:23.036770" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:23.439457" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:23.441963" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:22.832433" elapsed="0.614808">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:23.447798" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:23.448185" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:23.448579" elapsed="0.000053"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:22.832297" elapsed="0.616480">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:22.830471" elapsed="0.618446">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:22.829117" elapsed="0.620039">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:24.460615" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:24.662349" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:25.065184" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:25.067924" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:24.457227" elapsed="0.616556">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:25.074426" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:25.074799" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:25.074958" elapsed="0.000020"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:24.457046" elapsed="0.617997">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:24.453644" elapsed="0.621466">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:24.450179" elapsed="0.625050">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:26.088035" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:26.289599" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:26.692038" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:26.694499" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:26.084037" elapsed="0.616226">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:26.700843" elapsed="0.000069"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:26.701255" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:26.701672" elapsed="0.000105"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:26.083753" elapsed="0.618168">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:26.079609" elapsed="0.622460">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:26.076032" elapsed="0.626294">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:27.713178" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:27.914901" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:28.317312" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:28.319349" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:27.709618" elapsed="0.614057">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:28.324033" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:28.324276" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:28.324535" elapsed="0.000030"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:27.709434" elapsed="0.615225">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:27.706075" elapsed="0.618679">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:27.703231" elapsed="0.621968">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:29.337204" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:29.538942" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:29.941738" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:29.945025" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:29.333716" elapsed="0.617821">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:29.952535" elapsed="0.000079"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:29.952770" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:29.952930" elapsed="0.000020"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:29.333521" elapsed="0.619500">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:29.330353" elapsed="0.622745">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:29.326944" elapsed="0.626490">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:30.963358" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:31.165107" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:31.567848" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:31.570228" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:30.959751" elapsed="0.616234">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:31.576539" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:31.576920" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:31.577278" elapsed="0.000047"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:30.959564" elapsed="0.617919">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:30.956848" elapsed="0.620777">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:30.954502" elapsed="0.623355">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:32.589798" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:32.791300" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:33.193715" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:33.196647" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:32.586235" elapsed="0.615922">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:33.202703" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:33.203083" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:33.203552" elapsed="0.000065"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:32.586060" elapsed="0.617733">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:32.582261" elapsed="0.621674">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:32.578952" elapsed="0.625304">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:34.216652" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:34.418228" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:34.821132" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:34.824050" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:34.212790" elapsed="0.616198">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:34.829356" elapsed="0.000062"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:34.829631" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:34.829863" elapsed="0.000029"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:34.212606" elapsed="0.617370">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:34.208854" elapsed="0.621212">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:34.205261" elapsed="0.624964">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:35.843301" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:36.044832" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:36.447566" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:36.450076" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:35.838891" elapsed="0.614819">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:36.454070" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:36.454314" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:36.454722" elapsed="0.000050"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:35.838615" elapsed="0.616286">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:35.834428" elapsed="0.620700">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:35.831135" elapsed="0.624240">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Inventory" owner="FlowLib">
<for flavor="IN RANGE">
<iter>
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:37.469464" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:37.670863" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:38.073593" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:38.075742" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:17:37.465700" elapsed="0.615608">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.081855" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-capable-node-connector-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.082227" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>flow-table-statistics</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.082731" elapsed="0.000061"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:17:37.465314" elapsed="0.617615">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:17:37.460452" elapsed="0.622616">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${1}</arg>
<doc>Check all switches and stats in operational inventory</doc>
<status status="FAIL" start="2026-04-17T03:17:37.456594" elapsed="0.626712">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:17:38.083553" level="FAIL">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10x</arg>
<arg>1s</arg>
<arg>FlowLib.Check Switches In Inventory</arg>
<arg>${1}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:17:22.828547" elapsed="15.255285">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Write" owner="SSHLibrary">
<arg>dpctl dump-flows -O OpenFlow13</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.084232" elapsed="0.000049"/>
</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-04-17T03:17:38.084523" elapsed="0.000022"/>
</kw>
<doc>Initiate tcp connection with controller</doc>
<status status="FAIL" start="2026-04-17T03:17:22.827314" elapsed="15.257323">Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<test id="s1-s3-s2-t1" name="Test Add Flows Group 0" line="36">
<doc>Add all flows and waits for SM to collect data</doc>
<status status="FAIL" start="2026-04-17T03:17:38.084723" elapsed="0.000452">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t2" name="Test Is Flow 1 Added" line="50">
<status status="FAIL" start="2026-04-17T03:17:38.085357" elapsed="0.000340">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t3" name="Test Is Flow 2 Added" line="52">
<status status="FAIL" start="2026-04-17T03:17:38.085865" elapsed="0.000268">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t4" name="Test Is Flow 3 Added" line="54">
<status status="FAIL" start="2026-04-17T03:17:38.086304" elapsed="0.000320">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t5" name="Test Is Flow 4 Added" line="56">
<status status="FAIL" start="2026-04-17T03:17:38.086839" elapsed="0.000279">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t6" name="Test Is Flow 5 Added" line="58">
<status status="FAIL" start="2026-04-17T03:17:38.087282" elapsed="0.000526">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t7" name="Test Is Flow 6 Added" line="60">
<status status="FAIL" start="2026-04-17T03:17:38.088145" elapsed="0.000377">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t8" name="Test Is Flow 7 Added" line="62">
<status status="FAIL" start="2026-04-17T03:17:38.088865" elapsed="0.000356">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t9" name="Test Is Flow 8 Added" line="64">
<status status="FAIL" start="2026-04-17T03:17:38.089583" elapsed="0.000369">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t10" name="Test Is Flow 9 Added" line="66">
<status status="FAIL" start="2026-04-17T03:17:38.090297" elapsed="0.000445">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t11" name="Test Is Flow 10 Added" line="68">
<status status="FAIL" start="2026-04-17T03:17:38.091087" elapsed="0.000450">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t12" name="Test Is Flow 11 Added" line="70">
<status status="FAIL" start="2026-04-17T03:17:38.091927" elapsed="0.000433">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t13" name="Test Is Flow 15 Added" line="72">
<status status="FAIL" start="2026-04-17T03:17:38.092735" elapsed="0.000427">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t14" name="Test Is Flow 16 Added" line="74">
<status status="FAIL" start="2026-04-17T03:17:38.093535" elapsed="0.000766">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t15" name="Test Is Flow 17 Added" line="76">
<status status="FAIL" start="2026-04-17T03:17:38.094678" elapsed="0.000415">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t16" name="Test Is Flow 18 Added" line="78">
<status status="FAIL" start="2026-04-17T03:17:38.095515" elapsed="0.000450">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t17" name="Test Is Flow 19 Added" line="80">
<status status="FAIL" start="2026-04-17T03:17:38.096320" elapsed="0.000427">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t18" name="Test Is Flow 20 Added" line="82">
<status status="FAIL" start="2026-04-17T03:17:38.097110" elapsed="0.000432">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t19" name="Test Is Flow 21 Added" line="84">
<status status="FAIL" start="2026-04-17T03:17:38.097888" elapsed="0.000642">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t20" name="Test Is Flow 22 Added" line="86">
<status status="FAIL" start="2026-04-17T03:17:38.098896" elapsed="0.000412">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t21" name="Test Is Flow 23 Added" line="88">
<status status="FAIL" start="2026-04-17T03:17:38.099691" elapsed="0.000468">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t22" name="Test Is Flow 24 Added" line="90">
<status status="FAIL" start="2026-04-17T03:17:38.100525" elapsed="0.000417">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t23" name="Test Is Flow 25 Added" line="92">
<status status="FAIL" start="2026-04-17T03:17:38.101285" elapsed="0.000460">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t24" name="Test Is Flow 31 Added" line="94">
<status status="FAIL" start="2026-04-17T03:17:38.102095" elapsed="0.000426">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t25" name="Test Is Flow 36 Added" line="96">
<status status="FAIL" start="2026-04-17T03:17:38.102877" elapsed="0.000395">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t26" name="Test Is Flow 38 Added" line="98">
<status status="FAIL" start="2026-04-17T03:17:38.103605" elapsed="0.000375">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t27" name="Test Is Flow 43 Added" line="100">
<status status="FAIL" start="2026-04-17T03:17:38.104215" elapsed="0.000471">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t28" name="Test Is Flow 45 Added" line="102">
<status status="FAIL" start="2026-04-17T03:17:38.105043" elapsed="0.000403">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t29" name="Test Is Flow 101 Added" line="104">
<status status="FAIL" start="2026-04-17T03:17:38.105733" elapsed="0.000357">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t30" name="Test Is Flow 102 Added" line="106">
<status status="FAIL" start="2026-04-17T03:17:38.106378" elapsed="0.000429">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t31" name="Test Is Flow 103 Added" line="108">
<status status="FAIL" start="2026-04-17T03:17:38.107076" elapsed="0.000374">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t32" name="Test Is Flow 104 Added" line="110">
<status status="FAIL" start="2026-04-17T03:17:38.107688" elapsed="0.000344">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t33" name="Test Is Flow 105 Added" line="112">
<status status="FAIL" start="2026-04-17T03:17:38.108199" elapsed="0.000329">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t34" name="Test Is Flow 106 Added" line="114">
<status status="FAIL" start="2026-04-17T03:17:38.108768" elapsed="0.000358">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t35" name="Test Is Flow 107 Added" line="116">
<status status="FAIL" start="2026-04-17T03:17:38.109349" elapsed="0.000370">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t36" name="Test Is Flow 108 Added" line="118">
<status status="FAIL" start="2026-04-17T03:17:38.110048" elapsed="0.000320">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t37" name="Test Is Flow 109 Added" line="120">
<status status="FAIL" start="2026-04-17T03:17:38.110630" elapsed="0.000412">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t38" name="Test Is Flow 110 Added" line="122">
<status status="FAIL" start="2026-04-17T03:17:38.111219" elapsed="0.000432">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t39" name="Test Is Flow 113 Added" line="124">
<status status="FAIL" start="2026-04-17T03:17:38.112040" elapsed="0.000409">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t40" name="Test Is Flow 201 Added" line="126">
<status status="FAIL" start="2026-04-17T03:17:38.112804" elapsed="0.000436">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t41" name="Test Is Flow 202 Added" line="128">
<status status="FAIL" start="2026-04-17T03:17:38.113543" elapsed="0.000354">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t42" name="Test Is Flow 203 Added" line="130">
<status status="FAIL" start="2026-04-17T03:17:38.114130" elapsed="0.000403">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t43" name="Test Is Flow 204 Added" line="132">
<status status="FAIL" start="2026-04-17T03:17:38.114747" elapsed="0.000287">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t44" name="Test Is Flow 205 Added" line="134">
<status status="FAIL" start="2026-04-17T03:17:38.115240" elapsed="0.000423">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t45" name="Test Is Flow 206 Added" line="136">
<status status="FAIL" start="2026-04-17T03:17:38.115913" elapsed="0.000355">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t46" name="Test Is Flow 209 Added" line="138">
<status status="FAIL" start="2026-04-17T03:17:38.116480" elapsed="0.000302">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t47" name="Test Is Flow 214 Added" line="140">
<status status="FAIL" start="2026-04-17T03:17:38.116947" elapsed="0.000392">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t48" name="Test Is Flow 218 Added" line="142">
<status status="FAIL" start="2026-04-17T03:17:38.117621" elapsed="0.000330">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t49" name="Test Is Flow 219 Added" line="144">
<status status="FAIL" start="2026-04-17T03:17:38.118131" elapsed="0.000359">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t50" name="Test Is Flow 220 Added" line="146">
<status status="FAIL" start="2026-04-17T03:17:38.118664" elapsed="0.002030">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t51" name="Test Update Flows Group 0" line="148">
<doc>Update all flows and waits for SM to collect data</doc>
<status status="FAIL" start="2026-04-17T03:17:38.120881" elapsed="0.000344">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t52" name="Test Is Flow 1 Updated" line="161">
<status status="FAIL" start="2026-04-17T03:17:38.121438" elapsed="0.000367">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t53" name="Test Is Flow 2 Updated" line="163">
<status status="FAIL" start="2026-04-17T03:17:38.121984" elapsed="0.000460">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t54" name="Test Is Flow 3 Updated" line="165">
<status status="FAIL" start="2026-04-17T03:17:38.122751" elapsed="0.000353">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t55" name="Test Is Flow 4 Updated" line="167">
<status status="FAIL" start="2026-04-17T03:17:38.123355" elapsed="0.000317">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t56" name="Test Is Flow 5 Updated" line="169">
<status status="FAIL" start="2026-04-17T03:17:38.123900" elapsed="0.000320">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t57" name="Test Is Flow 6 Updated" line="171">
<status status="FAIL" start="2026-04-17T03:17:38.124416" elapsed="0.000297">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t58" name="Test Is Flow 7 Updated" line="173">
<status status="FAIL" start="2026-04-17T03:17:38.124935" elapsed="0.000319">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t59" name="Test Is Flow 8 Updated" line="175">
<status status="FAIL" start="2026-04-17T03:17:38.125454" elapsed="0.000294">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t60" name="Test Is Flow 9 Updated" line="177">
<status status="FAIL" start="2026-04-17T03:17:38.125934" elapsed="0.000313">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t61" name="Test Is Flow 10 Updated" line="179">
<status status="FAIL" start="2026-04-17T03:17:38.126443" elapsed="0.000300">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t62" name="Test Is Flow 11 Updated" line="181">
<status status="FAIL" start="2026-04-17T03:17:38.126938" elapsed="0.000303">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t63" name="Test Is Flow 14 Updated" line="183">
<status status="FAIL" start="2026-04-17T03:17:38.127456" elapsed="0.000290">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t64" name="Test Is Flow 15 Updated" line="185">
<status status="FAIL" start="2026-04-17T03:17:38.127950" elapsed="0.000309">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t65" name="Test Is Flow 16 Updated" line="187">
<status status="FAIL" start="2026-04-17T03:17:38.128469" elapsed="0.000302">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t66" name="Test Is Flow 17 Updated" line="189">
<status status="FAIL" start="2026-04-17T03:17:38.129014" elapsed="0.000298">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t67" name="Test Is Flow 18 Updated" line="191">
<status status="FAIL" start="2026-04-17T03:17:38.129511" elapsed="0.000319">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t68" name="Test Is Flow 19 Updated" line="193">
<status status="FAIL" start="2026-04-17T03:17:38.129999" elapsed="0.000276">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t69" name="Test Is Flow 20 Updated" line="195">
<status status="FAIL" start="2026-04-17T03:17:38.130509" elapsed="0.000361">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t70" name="Test Is Flow 21 Updated" line="197">
<status status="FAIL" start="2026-04-17T03:17:38.131159" elapsed="0.000370">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t71" name="Test Is Flow 22 Updated" line="199">
<status status="FAIL" start="2026-04-17T03:17:38.131897" elapsed="0.000374">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t72" name="Test Is Flow 23 Updated" line="201">
<status status="FAIL" start="2026-04-17T03:17:38.132659" elapsed="0.000365">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t73" name="Test Is Flow 24 Updated" line="203">
<status status="FAIL" start="2026-04-17T03:17:38.133335" elapsed="0.000383">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t74" name="Test Is Flow 25 Updated" line="205">
<status status="FAIL" start="2026-04-17T03:17:38.134013" elapsed="0.000417">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t75" name="Test Is Flow 31 Updated" line="207">
<status status="FAIL" start="2026-04-17T03:17:38.134731" elapsed="0.000321">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t76" name="Test Is Flow 36 Updated" line="209">
<status status="FAIL" start="2026-04-17T03:17:38.135223" elapsed="0.000293">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t77" name="Test Is Flow 38 Updated" line="211">
<status status="FAIL" start="2026-04-17T03:17:38.135680" elapsed="0.000304">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t78" name="Test Is Flow 43 Updated" line="213">
<status status="FAIL" start="2026-04-17T03:17:38.136198" elapsed="0.000292">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t79" name="Test Is Flow 45 Updated" line="215">
<status status="FAIL" start="2026-04-17T03:17:38.136653" elapsed="0.000314">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t80" name="Test Is Flow 101 Updated" line="217">
<status status="FAIL" start="2026-04-17T03:17:38.137144" elapsed="0.000327">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t81" name="Test Is Flow 102 Updated" line="219">
<status status="FAIL" start="2026-04-17T03:17:38.137676" elapsed="0.000276">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t82" name="Test Is Flow 103 Updated" line="221">
<status status="FAIL" start="2026-04-17T03:17:38.138113" elapsed="0.000288">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t83" name="Test Is Flow 104 Updated" line="223">
<status status="FAIL" start="2026-04-17T03:17:38.138565" elapsed="0.000274">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t84" name="Test Is Flow 105 Updated" line="225">
<status status="FAIL" start="2026-04-17T03:17:38.138997" elapsed="0.000273">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t85" name="Test Is Flow 106 Updated" line="227">
<status status="FAIL" start="2026-04-17T03:17:38.139450" elapsed="0.000275">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t86" name="Test Is Flow 107 Updated" line="229">
<status status="FAIL" start="2026-04-17T03:17:38.140002" elapsed="0.000280">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t87" name="Test Is Flow 108 Updated" line="231">
<status status="FAIL" start="2026-04-17T03:17:38.140461" elapsed="0.000270">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t88" name="Test Is Flow 109 Updated" line="233">
<status status="FAIL" start="2026-04-17T03:17:38.140904" elapsed="0.000599">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t89" name="Test Is Flow 110 Updated" line="235">
<status status="FAIL" start="2026-04-17T03:17:38.141672" elapsed="0.000267">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t90" name="Test Is Flow 113 Updated" line="237">
<status status="FAIL" start="2026-04-17T03:17:38.142100" elapsed="0.000267">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t91" name="Test Is Flow 201 Updated" line="239">
<status status="FAIL" start="2026-04-17T03:17:38.142598" elapsed="0.000276">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t92" name="Test Is Flow 202 Updated" line="241">
<status status="FAIL" start="2026-04-17T03:17:38.143032" elapsed="0.000265">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t93" name="Test Is Flow 203 Updated" line="243">
<status status="FAIL" start="2026-04-17T03:17:38.143474" elapsed="0.000272">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t94" name="Test Is Flow 204 Updated" line="245">
<status status="FAIL" start="2026-04-17T03:17:38.143925" elapsed="0.000266">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t95" name="Test Is Flow 205 Updated" line="247">
<status status="FAIL" start="2026-04-17T03:17:38.144349" elapsed="0.000372">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t96" name="Test Is Flow 206 Updated" line="249">
<status status="FAIL" start="2026-04-17T03:17:38.144967" elapsed="0.000382">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t97" name="Test Is Flow 209 Updated" line="251">
<status status="FAIL" start="2026-04-17T03:17:38.145617" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t98" name="Test Is Flow 214 Updated" line="253">
<status status="FAIL" start="2026-04-17T03:17:38.146169" elapsed="0.000322">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t99" name="Test Is Flow 218 Updated" line="255">
<status status="FAIL" start="2026-04-17T03:17:38.146737" elapsed="0.000381">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t100" name="Test Is Flow 219 Updated" line="257">
<status status="FAIL" start="2026-04-17T03:17:38.147477" elapsed="0.000414">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t101" name="Test Is Flow 220 Updated" line="259">
<status status="FAIL" start="2026-04-17T03:17:38.148197" elapsed="0.000381">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t102" name="Test Delete Flows Group 0" line="261">
<doc>Delete all flows and waits for SM to collect data</doc>
<status status="FAIL" start="2026-04-17T03:17:38.148855" elapsed="0.000418">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t103" name="Test Is Flow 1 Deleted" line="274">
<status status="FAIL" start="2026-04-17T03:17:38.149603" elapsed="0.000363">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t104" name="Test Is Flow 2 Deleted" line="276">
<status status="FAIL" start="2026-04-17T03:17:38.150145" elapsed="0.000381">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t105" name="Test Is Flow 3 Deleted" line="278">
<status status="FAIL" start="2026-04-17T03:17:38.150816" elapsed="0.000374">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t106" name="Test Is Flow 4 Deleted" line="280">
<status status="FAIL" start="2026-04-17T03:17:38.151499" elapsed="0.000363">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t107" name="Test Is Flow 5 Deleted" line="282">
<status status="FAIL" start="2026-04-17T03:17:38.152193" elapsed="0.000381">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t108" name="Test Is Flow 6 Deleted" line="284">
<status status="FAIL" start="2026-04-17T03:17:38.152839" elapsed="0.000281">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t109" name="Test Is Flow 7 Deleted" line="286">
<status status="FAIL" start="2026-04-17T03:17:38.153283" elapsed="0.000321">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t110" name="Test Is Flow 8 Deleted" line="288">
<status status="FAIL" start="2026-04-17T03:17:38.153790" elapsed="0.000296">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t111" name="Test Is Flow 9 Deleted" line="290">
<status status="FAIL" start="2026-04-17T03:17:38.154280" elapsed="0.000335">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t112" name="Test Is Flow 10 Deleted" line="292">
<status status="FAIL" start="2026-04-17T03:17:38.154810" elapsed="0.000309">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t113" name="Test Is Flow 11 Deleted" line="294">
<status status="FAIL" start="2026-04-17T03:17:38.155324" elapsed="0.000345">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t114" name="Test Is Flow 14 Deleted" line="296">
<status status="FAIL" start="2026-04-17T03:17:38.155936" elapsed="0.000327">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t115" name="Test Is Flow 15 Deleted" line="298">
<status status="FAIL" start="2026-04-17T03:17:38.156481" elapsed="0.000310">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t116" name="Test Is Flow 16 Deleted" line="300">
<status status="FAIL" start="2026-04-17T03:17:38.156975" elapsed="0.000331">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t117" name="Test Is Flow 17 Deleted" line="302">
<status status="FAIL" start="2026-04-17T03:17:38.157525" elapsed="0.000304">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t118" name="Test Is Flow 18 Deleted" line="304">
<status status="FAIL" start="2026-04-17T03:17:38.158035" elapsed="0.000309">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t119" name="Test Is Flow 19 Deleted" line="306">
<status status="FAIL" start="2026-04-17T03:17:38.158567" elapsed="0.000315">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t120" name="Test Is Flow 20 Deleted" line="308">
<status status="FAIL" start="2026-04-17T03:17:38.159071" elapsed="0.000301">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t121" name="Test Is Flow 21 Deleted" line="310">
<status status="FAIL" start="2026-04-17T03:17:38.159586" elapsed="0.000306">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t122" name="Test Is Flow 22 Deleted" line="312">
<status status="FAIL" start="2026-04-17T03:17:38.160070" elapsed="0.000331">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t123" name="Test Is Flow 23 Deleted" line="314">
<status status="FAIL" start="2026-04-17T03:17:38.160595" elapsed="0.000317">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t124" name="Test Is Flow 24 Deleted" line="316">
<status status="FAIL" start="2026-04-17T03:17:38.161108" elapsed="0.000347">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t125" name="Test Is Flow 25 Deleted" line="318">
<status status="FAIL" start="2026-04-17T03:17:38.161658" elapsed="0.000311">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t126" name="Test Is Flow 31 Deleted" line="320">
<status status="FAIL" start="2026-04-17T03:17:38.162166" elapsed="0.000682">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t127" name="Test Is Flow 36 Deleted" line="322">
<status status="FAIL" start="2026-04-17T03:17:38.163047" elapsed="0.000306">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t128" name="Test Is Flow 38 Deleted" line="324">
<status status="FAIL" start="2026-04-17T03:17:38.163590" elapsed="0.000354">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t129" name="Test Is Flow 43 Deleted" line="326">
<status status="FAIL" start="2026-04-17T03:17:38.164149" elapsed="0.000343">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t130" name="Test Is Flow 45 Deleted" line="328">
<status status="FAIL" start="2026-04-17T03:17:38.164689" elapsed="0.000301">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t131" name="Test Is Flow 101 Deleted" line="330">
<status status="FAIL" start="2026-04-17T03:17:38.165181" elapsed="0.000333">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t132" name="Test Is Flow 102 Deleted" line="332">
<status status="FAIL" start="2026-04-17T03:17:38.165714" elapsed="0.000307">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t133" name="Test Is Flow 103 Deleted" line="334">
<status status="FAIL" start="2026-04-17T03:17:38.166221" elapsed="0.000347">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t134" name="Test Is Flow 104 Deleted" line="336">
<status status="FAIL" start="2026-04-17T03:17:38.166763" elapsed="0.000319">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t135" name="Test Is Flow 105 Deleted" line="338">
<status status="FAIL" start="2026-04-17T03:17:38.167269" elapsed="0.000350">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t136" name="Test Is Flow 106 Deleted" line="340">
<status status="FAIL" start="2026-04-17T03:17:38.167837" elapsed="0.000321">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t137" name="Test Is Flow 107 Deleted" line="342">
<status status="FAIL" start="2026-04-17T03:17:38.168355" elapsed="0.000337">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t138" name="Test Is Flow 108 Deleted" line="344">
<status status="FAIL" start="2026-04-17T03:17:38.168881" elapsed="0.000316">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t139" name="Test Is Flow 109 Deleted" line="346">
<status status="FAIL" start="2026-04-17T03:17:38.169408" elapsed="0.000308">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t140" name="Test Is Flow 110 Deleted" line="348">
<status status="FAIL" start="2026-04-17T03:17:38.169910" elapsed="0.000301">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t141" name="Test Is Flow 113 Deleted" line="350">
<status status="FAIL" start="2026-04-17T03:17:38.170417" elapsed="0.000329">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t142" name="Test Is Flow 201 Deleted" line="352">
<status status="FAIL" start="2026-04-17T03:17:38.170970" elapsed="0.000321">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t143" name="Test Is Flow 202 Deleted" line="354">
<status status="FAIL" start="2026-04-17T03:17:38.171529" elapsed="0.000375">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t144" name="Test Is Flow 203 Deleted" line="356">
<status status="FAIL" start="2026-04-17T03:17:38.172102" elapsed="0.000388">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t145" name="Test Is Flow 204 Deleted" line="358">
<status status="FAIL" start="2026-04-17T03:17:38.172686" elapsed="0.000402">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t146" name="Test Is Flow 205 Deleted" line="360">
<status status="FAIL" start="2026-04-17T03:17:38.173281" elapsed="0.000350">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t147" name="Test Is Flow 206 Deleted" line="362">
<status status="FAIL" start="2026-04-17T03:17:38.173824" elapsed="0.000301">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t148" name="Test Is Flow 209 Deleted" line="364">
<status status="FAIL" start="2026-04-17T03:17:38.174330" elapsed="0.000347">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t149" name="Test Is Flow 214 Deleted" line="366">
<status status="FAIL" start="2026-04-17T03:17:38.174863" elapsed="0.000302">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t150" name="Test Is Flow 218 Deleted" line="368">
<status status="FAIL" start="2026-04-17T03:17:38.175360" elapsed="0.000337">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t151" name="Test Is Flow 219 Deleted" line="370">
<status status="FAIL" start="2026-04-17T03:17:38.175911" elapsed="0.000314">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s3-s2-t152" name="Test Is Flow 220 Deleted" line="372">
<status status="FAIL" start="2026-04-17T03:17:38.176443" elapsed="0.000320">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Delete All Sessions" owner="RequestsLibrary" type="TEARDOWN">
<msg time="2026-04-17T03:17:38.177834" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:17:38.177693" elapsed="0.000273"/>
</kw>
<doc>Test suite for Stats Manager flows collection</doc>
<status status="FAIL" start="2026-04-17T03:17:22.775714" elapsed="15.402291">Suite setup failed:
Keyword 'FlowLib.Check Switches In Inventory' failed after retrying 10 times. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</suite>
<kw name="Stop Mininet" owner="Utils" type="TEARDOWN">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:38.181062" level="INFO">Stop the test on the base edition</msg>
<arg>Stop the test on the base edition</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:38.180778" elapsed="0.000332"/>
</kw>
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn_id}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:38.181248" elapsed="0.000164"/>
</kw>
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:38.181999" elapsed="0.000144"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:17:38.185762" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:17:38.182320" elapsed="0.003501"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:17:38.302500" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 2 links
..
*** Stopping 1 switches
s1 
*** Stopping 2 hosts
h1 h2 
*** Done
completed in 31.176 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${prompt}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:17:38.185961" elapsed="0.116690"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:38.302917" elapsed="0.000223"/>
</kw>
<doc>Cleanup/Shutdown work that should be done at the completion of all
tests</doc>
<status status="PASS" start="2026-04-17T03:17:38.180469" elapsed="0.122740"/>
</kw>
<doc>Test suite for the OpenDaylight OpenFlow statistics manager</doc>
<status status="FAIL" start="2026-04-17T03:17:04.295713" elapsed="34.007532"/>
</suite>
<suite id="s1-s4" name="Switch Qualification" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Switch_Qualification">
<suite id="s1-s4-s1" name="010 OpenFlow Connection" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Switch_Qualification/010_OpenFlow_Connection.robot">
<kw name="Switch Qualification Suite Setup" type="SETUP">
<kw name="Get Switch" owner="Ovs">
<msg time="2026-04-17T03:17:38.364611" level="INFO">${test_switch} = &lt;Ovs.Ovs object at 0x77d09c35f7d0&gt;</msg>
<var>${test_switch}</var>
<arg>${SWITCH_CLASS}</arg>
<doc>Generic method that will allow Robot Code to pass a string
to this "keyword - Get Switch" and create an object of that
type.  (EX: Get Switch  OVS)</doc>
<status status="PASS" start="2026-04-17T03:17:38.364361" elapsed="0.000284"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:38.365197" level="INFO">${test_switch} = &lt;Ovs.Ovs object at 0x77d09c35f7d0&gt;</msg>
<arg>${test_switch}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:17:38.364825" elapsed="0.000418"/>
</kw>
<kw name="Call Method" owner="BuiltIn">
<arg>${test_switch}</arg>
<arg>set_mgmt_ip</arg>
<arg>${SWITCH_IP}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:38.365424" elapsed="0.000369"/>
</kw>
<kw name="Call Method" owner="BuiltIn">
<arg>${test_switch}</arg>
<arg>set_controller_ip</arg>
<arg>${ODL_SYSTEM_IP}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:38.365986" elapsed="0.000323"/>
</kw>
<kw name="Call Method" owner="BuiltIn">
<arg>${test_switch}</arg>
<arg>set_mgmt_prompt</arg>
<arg>${SWITCH_PROMPT}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:38.366482" elapsed="0.000307"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:38.376864" level="INFO">MAKE: OpenVswitch
MODEL: OVS
IP: 10.30.171.160
PROMPT: &gt;
CONTROLLER_IP: 10.30.170.85
MGMT_PROTOCOL: ssh</msg>
<arg>MAKE: ${test_switch.make}\nMODEL: ${test_switch.model}\nIP: ${test_switch.mgmt_ip}\nPROMPT: ${test_switch.mgmt_prompt}\nCONTROLLER_IP: ${test_switch.of_controller_ip}\nMGMT_PROTOCOL: ${test_switch.mgmt_protocol}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:38.366945" elapsed="0.009971"/>
</kw>
<kw name="Ping" owner="SwitchUtils">
<kw name="Run" owner="OperatingSystem">
<msg time="2026-04-17T03:17:38.379843" level="INFO">Running command 'ping 10.30.171.160 -c 1 -W 1 2&gt;&amp;1'.</msg>
<msg time="2026-04-17T03:17:38.383924" level="INFO">${output} = PING 10.30.171.160 (10.30.171.160) 56(84) bytes of data.
64 bytes from 10.30.171.160: icmp_seq=1 ttl=64 time=0.924 ms

--- 10.30.171.160 ping statistics ---
1 packets transmitted, 1 received, 0% packe...</msg>
<var>${output}</var>
<arg>ping ${ip} -c 1 -W 1</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="PASS" start="2026-04-17T03:17:38.378987" elapsed="0.004973"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>1 packets transmitted, 1 received</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-04-17T03:17:38.384213" elapsed="0.000698"/>
</kw>
<arg>${test_switch.mgmt_ip}</arg>
<status status="PASS" start="2026-04-17T03:17:38.377092" elapsed="0.007925"/>
</kw>
<kw name="Initialize Switch" owner="SwitchUtils">
<kw name="Connect To Switch" owner="SwitchUtils">
<kw name="Open Connection Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Call Method" owner="BuiltIn">
<arg>${switch}</arg>
<arg>set_ssh_key</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:38.389722" elapsed="0.000514"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.387078" elapsed="0.003222"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.387039" elapsed="0.003303"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Call Method" owner="BuiltIn">
<arg>${switch}</arg>
<arg>set_mgmt_user</arg>
<arg>${TOOLS_SYSTEM_USER}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:38.392965" elapsed="0.000451"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.390451" elapsed="0.003027"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.390425" elapsed="0.003087"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:38.400778" level="INFO">${connection_index} = 16</msg>
<var>${connection_index}</var>
<arg>${switch.mgmt_ip}</arg>
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=30s</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:17:38.395919" elapsed="0.004887"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.393590" elapsed="0.007258"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${connection_index}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.401017" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:38.400872" elapsed="0.000202"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.393567" elapsed="0.007528"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:17:38.406256" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:17:38.734051" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:17:04 UTC 2026

  System load:  0.19               Processes:             110
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:17:06 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${switch.mgmt_user}</arg>
<arg>${switch.ssh_key}</arg>
<arg>any</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-04-17T03:17:38.402892" elapsed="0.331398"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.401151" elapsed="0.333205"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.401134" elapsed="0.333283"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Open Connection" owner="Telnet">
<var>${connection_index}</var>
<arg>${switch.mgmt_ip}</arg>
<doc>Opens a new Telnet connection to the given host and port.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.736398" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:38.734511" elapsed="0.001953"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:38.737052" level="INFO">${connection_index} = 16</msg>
<var>${connection_index}</var>
<arg>${connection_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:38.736668" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.736488" elapsed="0.000628"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.734484" elapsed="0.002654"/>
</if>
<return>
<value>${connection_index}</value>
<status status="PASS" start="2026-04-17T03:17:38.737182" elapsed="0.000044"/>
</return>
<msg time="2026-04-17T03:17:38.737367" level="INFO">${connection_index} = 16</msg>
<var>${connection_index}</var>
<arg>${switch}</arg>
<doc>Some switches require telnet access and others require ssh access.  Based on the
switch.mgmt_protocol, the connection open will be handled by the right robot
library (Telnet or SSHLibrary).  The connection_index is returned.</doc>
<status status="PASS" start="2026-04-17T03:17:38.386788" elapsed="0.350619"/>
</kw>
<kw name="Call Method" owner="BuiltIn">
<arg>${switch}</arg>
<arg>set_connection_index</arg>
<arg>${connection_index}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:38.737561" elapsed="0.000317"/>
</kw>
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:38.740496" elapsed="0.001574"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.738813" elapsed="0.003295"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.738796" elapsed="0.003336"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:38.743846" elapsed="0.001825"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.742186" elapsed="0.003525"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.742170" elapsed="0.003565"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.747457" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:38.745789" elapsed="0.001730"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.745772" elapsed="0.001770"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.749277" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:38.747596" elapsed="0.001740"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.747580" elapsed="0.001780"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:38.738606" elapsed="0.010817"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Write Bare Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Write Bare" owner="SSHLibrary">
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-04-17T03:17:38.753167" elapsed="0.000312"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.751488" elapsed="0.002031"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.751470" elapsed="0.002074"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Write Bare" owner="Telnet">
<arg>${cmd}</arg>
<doc>Writes the given text, and nothing else, into the connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:38.755419" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:38.753599" elapsed="0.001880"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:38.753583" elapsed="0.001921"/>
</if>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Write Bare command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:38.751238" elapsed="0.004315"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-04-17T03:17:39.756145" level="INFO">Slept 1 second.</msg>
<arg>1</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-04-17T03:17:38.755701" elapsed="1.000626"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<msg time="2026-04-17T03:17:39.759954" level="INFO">pwd</msg>
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:39.759767" elapsed="0.000256"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:39.757221" elapsed="0.002846"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:39.757190" elapsed="0.002913"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:39.762579" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:39.760183" elapsed="0.002472"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:39.760159" elapsed="0.002531"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:39.756851" elapsed="0.005907"/>
</kw>
<var name="${cmd}">pwd</var>
<status status="PASS" start="2026-04-17T03:17:38.751034" elapsed="1.011771"/>
</iter>
<var>${cmd}</var>
<value>@{switch.connection_configs}</value>
<status status="PASS" start="2026-04-17T03:17:38.749483" elapsed="1.013375"/>
</for>
<arg>${switch}</arg>
<doc>Will Open a connection to the switch, which will set the switch.connection_index.
For each switch.connection_configs string, a write bare will be executed on the
switch connection.  The write bare is done becuase some switch consoles require
extra input (CR/LF, etc.) that are needed.  The connection_configs strings should
be sufficient to put the switch console in to a usuable state so that further
interactions with the switch can be used with the robot keyword "Execute
Command"</doc>
<status status="PASS" start="2026-04-17T03:17:38.386050" elapsed="1.376892"/>
</kw>
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:39.766275" elapsed="0.002472"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:39.763813" elapsed="0.004987"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:39.763789" elapsed="0.005046"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:39.771310" elapsed="0.002617"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:39.768916" elapsed="0.005065"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:39.768892" elapsed="0.005126"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:39.776446" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:39.774098" elapsed="0.002429"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:39.774073" elapsed="0.002487"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:39.778996" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:39.776639" elapsed="0.002438"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:39.776616" elapsed="0.002495"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:39.763543" elapsed="0.015637"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Write Bare Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Write Bare" owner="SSHLibrary">
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-04-17T03:17:39.784203" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:39.781933" elapsed="0.002719"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:39.781911" elapsed="0.002776"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Write Bare" owner="Telnet">
<arg>${cmd}</arg>
<doc>Writes the given text, and nothing else, into the connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:39.787195" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:39.784764" elapsed="0.002509"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:39.784740" elapsed="0.002566"/>
</if>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Write Bare command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:39.781621" elapsed="0.005749"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-04-17T03:17:40.788173" level="INFO">Slept 1 second.</msg>
<arg>1</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-04-17T03:17:39.787599" elapsed="1.000779"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<msg time="2026-04-17T03:17:40.794615" level="INFO">['/sbin/ifconfig -a | egrep \'^s\' | awk \'{print "sudo ovs-vsctl del-br",$1}\' | sh']</msg>
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:40.794328" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.790439" elapsed="0.004352"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.790367" elapsed="0.004479"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.798864" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.795000" elapsed="0.004040"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.794931" elapsed="0.004163"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:40.789949" elapsed="0.009250"/>
</kw>
<arg>Read Wrapper</arg>
<arg>${switch}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:17:40.788885" elapsed="0.010417"/>
</kw>
<var name="${cmd}">['/sbin/ifconfig -a | egrep \'^s\' | awk \'{print "sudo ovs-vsctl del-br",$1}\' | sh']</var>
<status status="PASS" start="2026-04-17T03:17:39.781311" elapsed="1.018063"/>
</iter>
<var>${cmd}</var>
<value>@{switch.initialization_cmds}</value>
<status status="PASS" start="2026-04-17T03:17:39.779254" elapsed="1.020247"/>
</for>
<if>
<branch type="IF" condition="&quot;${switch.initialization_type}&quot; == &quot;reboot&quot;">
<kw name="Wait For Switch Reboot" owner="SwitchUtils">
<arg>${switch}</arg>
<doc>If a switch has been set to reboot, it may take some time.  This keyword will first
make sure the switch has gone down (10 pings over 10 seconds should not see
a 100% success, although it may respond for a short time after the reload is
issued).  Then a poll is done with a single ping request every 5s until a success
is found, at which point it is assumed the switch is up and ready.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.801370" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.799647" elapsed="0.001800"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.799620" elapsed="0.001851"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.initialization_type}&quot; == &quot;reboot&quot;">
<kw name="Connect To Switch" owner="SwitchUtils">
<arg>${switch}</arg>
<doc>Will Open a connection to the switch, which will set the switch.connection_index.
For each switch.connection_configs string, a write bare will be executed on the
switch connection.  The write bare is done becuase some switch consoles require
extra input (CR/LF, etc.) that are needed.  The connection_configs strings should
be sufficient to put the switch console in to a usuable state so that further
interactions with the switch can be used with the robot keyword "Execute
Command"</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.803233" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.801525" elapsed="0.001769"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.801509" elapsed="0.001809"/>
</if>
<arg>${test_switch}</arg>
<doc>Will connect and execute all switch.initialization_cmds on the given switch.
In some cases, this may be a reboot.  If so, the switch.initialization_type can
be set to "reboot" and further logic is invoked to wait for the reboot to complete
and a reconnect to the switch is made.</doc>
<status status="PASS" start="2026-04-17T03:17:38.385541" elapsed="2.417827"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:17:40.803962" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c2aea90&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-04-17T03:17:40.803615" elapsed="0.000525"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:38.363860" elapsed="2.440349"/>
</kw>
<test id="s1-s4-s1-t1" name="OF1.3 Connection Between Switch and Controller" line="28">
<kw name="Configure OpenFlow" owner="SwitchUtils">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:40.806071" level="INFO">Applying configs to configure openflow on the given switch.</msg>
<arg>Applying configs to configure openflow on the given switch.</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:40.805284" elapsed="0.000856"/>
</kw>
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:40.808532" elapsed="0.001789"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.806747" elapsed="0.003622"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.806727" elapsed="0.003702"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:40.812216" elapsed="0.002075"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.810501" elapsed="0.003831"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.810483" elapsed="0.003875"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.816133" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.814428" elapsed="0.001762"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.814411" elapsed="0.001804"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.818122" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.816305" elapsed="0.001882"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.816281" elapsed="0.001931"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:40.806498" elapsed="0.011764"/>
</kw>
<kw name="Iterate Switch Commands From List" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:40.825409" elapsed="0.001666"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.823723" elapsed="0.003393"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.823703" elapsed="0.003439"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:40.828881" elapsed="0.001892"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.827199" elapsed="0.003615"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.827181" elapsed="0.003658"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.832701" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.830896" elapsed="0.001864"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.830879" elapsed="0.001905"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.834567" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.832840" elapsed="0.001787"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.832824" elapsed="0.001827"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:40.823480" elapsed="0.011220"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:40.835518" level="INFO">sudo ovs-vsctl add-br s1</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:40.835144" elapsed="0.000435"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:40.837726" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.836040" elapsed="0.001907"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.836022" elapsed="0.001950"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.839889" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.838034" elapsed="0.001910"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.838014" elapsed="0.001959"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:40.835798" elapsed="0.004224"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:40.842458" level="INFO">Executing command 'sudo ovs-vsctl add-br s1'.</msg>
<msg time="2026-04-17T03:17:40.926861" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:40.927309" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:40.842255" elapsed="0.085280"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.840581" elapsed="0.087065"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.928135" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.927716" elapsed="0.000555"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.840563" elapsed="0.087758"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.932493" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.928493" elapsed="0.004099"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:40.933594" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:40.932856" elapsed="0.000783"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.932630" elapsed="0.001067"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.928452" elapsed="0.005278"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:40.933790" elapsed="0.000057"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:40.840287" elapsed="0.093720"/>
</kw>
<var name="${cmd}">sudo ovs-vsctl add-br s1</var>
<status status="PASS" start="2026-04-17T03:17:40.834963" elapsed="0.099106"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:40.934931" level="INFO">sudo ovs-vsctl set bridge s1 protocols=OpenFlow13</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:40.934452" elapsed="0.000566"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:40.939779" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.935816" elapsed="0.004188"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.935789" elapsed="0.004240"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.941766" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.940085" elapsed="0.001735"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.940069" elapsed="0.001775"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:40.935428" elapsed="0.006465"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:40.944333" level="INFO">Executing command 'sudo ovs-vsctl set bridge s1 protocols=OpenFlow13'.</msg>
<msg time="2026-04-17T03:17:40.987843" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:40.988285" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:40.944155" elapsed="0.044190"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.942456" elapsed="0.046038"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.989023" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.988571" elapsed="0.000588"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.942438" elapsed="0.046769"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:40.993472" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.989353" elapsed="0.004255"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:40.994929" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:40.993970" elapsed="0.001018"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.993662" elapsed="0.001406"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.989311" elapsed="0.005805"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:40.995246" elapsed="0.000081"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:40.942154" elapsed="0.053442"/>
</kw>
<var name="${cmd}">sudo ovs-vsctl set bridge s1 protocols=OpenFlow13</var>
<status status="PASS" start="2026-04-17T03:17:40.934233" elapsed="0.061430"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:40.996214" level="INFO">sudo ovs-vsctl set-controller s1 tcp:10.30.170.85</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:40.995918" elapsed="0.000353"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:40.998552" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:40.996793" elapsed="0.001996"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.996776" elapsed="0.002036"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.000574" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:40.998866" elapsed="0.001761"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:40.998850" elapsed="0.001804"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:40.996531" elapsed="0.004169"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:41.003156" level="INFO">Executing command 'sudo ovs-vsctl set-controller s1 tcp:10.30.170.85'.</msg>
<msg time="2026-04-17T03:17:41.047489" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:41.047890" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:41.002978" elapsed="0.044968"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.001230" elapsed="0.046800"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.048447" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.048087" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.001213" elapsed="0.047412"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.052769" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.048750" elapsed="0.004154"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:41.054109" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:41.053262" elapsed="0.000908"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.052957" elapsed="0.001297"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.048714" elapsed="0.005589"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:41.054382" elapsed="0.000098"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:41.000958" elapsed="0.053747"/>
</kw>
<var name="${cmd}">sudo ovs-vsctl set-controller s1 tcp:10.30.170.85</var>
<status status="PASS" start="2026-04-17T03:17:40.995786" elapsed="0.059003"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:41.055831" level="INFO">sudo ifconfig s1 up</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:41.055359" elapsed="0.000529"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:41.058024" elapsed="0.000169"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.056342" elapsed="0.001884"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.056324" elapsed="0.001926"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.099850" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.058304" elapsed="0.041633"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.058288" elapsed="0.041679"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:41.056103" elapsed="0.043936"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:41.102669" level="INFO">Executing command 'sudo ifconfig s1 up'.</msg>
<msg time="2026-04-17T03:17:41.126543" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:41.126837" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:41.102453" elapsed="0.024440"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.100679" elapsed="0.026302"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.127495" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.127043" elapsed="0.000604"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.100659" elapsed="0.027036"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.132260" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.127825" elapsed="0.004599"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:41.133276" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:41.132732" elapsed="0.000581"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.132481" elapsed="0.000881"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.127787" elapsed="0.005631"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:41.133473" elapsed="0.000049"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:41.100341" elapsed="0.033323"/>
</kw>
<var name="${cmd}">sudo ifconfig s1 up</var>
<status status="PASS" start="2026-04-17T03:17:41.055002" elapsed="0.078715"/>
</iter>
<var>${cmd}</var>
<value>@{cmd_list}</value>
<status status="PASS" start="2026-04-17T03:17:40.834779" elapsed="0.298984"/>
</for>
<arg>${switch}</arg>
<arg>${switch.base_openflow_config}</arg>
<doc>Each string in the @{cmd_list} argument is executed on the switch.connection_index.</doc>
<status status="PASS" start="2026-04-17T03:17:40.821455" elapsed="0.312383"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:41.136901" elapsed="0.000243"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.134503" elapsed="0.002689"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.134478" elapsed="0.002748"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.139813" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.137303" elapsed="0.002585"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.137280" elapsed="0.002642"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:41.134146" elapsed="0.005842"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:41.156179" elapsed="0.002299"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.153734" elapsed="0.004801"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.153706" elapsed="0.004865"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:41.160643" elapsed="0.001886"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.158650" elapsed="0.003920"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.158626" elapsed="0.003969"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.164338" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.162654" elapsed="0.001756"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.162634" elapsed="0.001801"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.166310" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.164489" elapsed="0.001882"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.164473" elapsed="0.001937"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:41.153359" elapsed="0.013101"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:41.168685" elapsed="0.000172"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.166938" elapsed="0.001952"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.166916" elapsed="0.001999"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.170719" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.168970" elapsed="0.001802"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.168953" elapsed="0.001843"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:41.166677" elapsed="0.004166"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:41.173288" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:41.186816" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:41.187120" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:41.173115" elapsed="0.014109"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.171354" elapsed="0.015968"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.187838" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.187481" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.171337" elapsed="0.016686"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.191979" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.188150" elapsed="0.003914"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:41.192880" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:41.192289" elapsed="0.000636"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.192098" elapsed="0.000880"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.188113" elapsed="0.004896"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:41.193061" elapsed="0.000047"/>
</return>
<msg time="2026-04-17T03:17:41.193290" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:41.171101" elapsed="0.022230"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:41.194021" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14237  bytes 47495030 (47.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7210  bytes 627612 (627.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1  bytes 90 (90.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:41.193586" elapsed="0.000611"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:41.197823" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:41.248099" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:41.248555" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:41.197562" elapsed="0.051061"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.195058" elapsed="0.053675"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.249208" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.248800" elapsed="0.000541"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.195032" elapsed="0.054389"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.253681" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.249567" elapsed="0.004249"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:41.255074" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:41.254171" elapsed="0.000967"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:41.253869" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:41.249527" elapsed="0.005738"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:41.255344" elapsed="0.000104"/>
</return>
<msg time="2026-04-17T03:17:41.255818" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:41.194644" elapsed="0.061233"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:41.256777" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:41.256216" elapsed="0.000619"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:41.257907" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:41.257370" elapsed="0.000617">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:41.257155" elapsed="0.000907">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:41.257140" elapsed="0.000956">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:41.258309" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:41.258167" elapsed="0.000198"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:41.258150" elapsed="0.000253"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:41.257108" elapsed="0.001342">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:41.256891" elapsed="0.001620">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:41.148789" elapsed="0.109827">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:42.277134" elapsed="0.001755"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:42.275303" elapsed="0.003635"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.275278" elapsed="0.003687"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:42.280879" elapsed="0.001994"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:42.279022" elapsed="0.003892"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.279005" elapsed="0.003935"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:42.284852" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:42.282997" elapsed="0.001912"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.282979" elapsed="0.001954"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:42.287060" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:42.284988" elapsed="0.002153"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.284972" elapsed="0.002202"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:42.275035" elapsed="0.012207"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:42.290351" elapsed="0.000269"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:42.287892" elapsed="0.002777"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.287868" elapsed="0.002899"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:42.293235" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:42.290847" elapsed="0.002489"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.290824" elapsed="0.002544"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:42.287562" elapsed="0.005896"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:42.296023" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:42.309516" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:42.309846" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:42.295841" elapsed="0.014065"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:42.294053" elapsed="0.015939"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:42.310446" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:42.310053" elapsed="0.000513"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.294036" elapsed="0.016573"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:42.314147" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:42.310734" elapsed="0.003498"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:42.315159" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:42.314483" elapsed="0.000718"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:42.314268" elapsed="0.000982"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.310695" elapsed="0.004586"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:42.315338" elapsed="0.000069"/>
</return>
<msg time="2026-04-17T03:17:42.315598" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:42.293797" elapsed="0.021841"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:42.316270" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14247  bytes 47496190 (47.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7224  bytes 630864 (630.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3  bytes 266 (266.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:42.315863" elapsed="0.000509"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:42.319880" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:42.367491" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:42.368060" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:42.319618" elapsed="0.048511"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:42.317237" elapsed="0.050997"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:42.368798" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:42.368305" elapsed="0.000638"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.317212" elapsed="0.051782"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:42.373945" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:42.369140" elapsed="0.004947"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:42.375487" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:42.374492" elapsed="0.001067"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:42.374144" elapsed="0.001504"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:42.369099" elapsed="0.006616"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:42.375815" elapsed="0.000074"/>
</return>
<msg time="2026-04-17T03:17:42.376187" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:42.316838" elapsed="0.059409"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:42.377479" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:42.376628" elapsed="0.000991"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:42.379060" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:42.378436" elapsed="0.000731">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:42.378105" elapsed="0.001167">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:42.378085" elapsed="0.001235">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:42.379643" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:42.379440" elapsed="0.000292"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:42.379415" elapsed="0.000352"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:42.378037" elapsed="0.001793">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:42.377733" elapsed="0.002182">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:42.271165" elapsed="0.108892">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:43.397813" elapsed="0.002595"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:43.396062" elapsed="0.004449"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.396036" elapsed="0.004536"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:43.403582" elapsed="0.001928"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:43.400699" elapsed="0.004854"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.400661" elapsed="0.004917"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:43.407430" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:43.405633" elapsed="0.001858"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.405616" elapsed="0.001900"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:43.409259" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:43.407572" elapsed="0.001747"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.407556" elapsed="0.001788"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:43.395809" elapsed="0.013602"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:43.411624" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:43.409907" elapsed="0.001938"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.409889" elapsed="0.001981"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:43.413618" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:43.411924" elapsed="0.001747"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.411908" elapsed="0.001787"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:43.409632" elapsed="0.004112"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:43.416367" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:43.429637" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:43.429766" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:43.416186" elapsed="0.013668"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:43.414303" elapsed="0.015654"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:43.430358" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:43.430016" elapsed="0.000515"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.414286" elapsed="0.016293"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:43.434614" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:43.430706" elapsed="0.004044"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:43.436016" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:43.435110" elapsed="0.000971"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:43.434804" elapsed="0.001360"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.430668" elapsed="0.005545"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:43.436293" elapsed="0.000073"/>
</return>
<msg time="2026-04-17T03:17:43.436678" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:43.414047" elapsed="0.022692"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:43.437764" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14257  bytes 47497362 (47.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7238  bytes 634108 (634.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 516 (516.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:43.437079" elapsed="0.000935"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:43.440887" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:43.487191" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:43.487526" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:43.440717" elapsed="0.046874"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:43.438999" elapsed="0.048681"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:43.488158" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:43.487811" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.438981" elapsed="0.049359"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:43.492455" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:43.488506" elapsed="0.004089"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:43.493804" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:43.492960" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:43.492649" elapsed="0.001384"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:43.488466" elapsed="0.005618"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:43.494165" elapsed="0.000066"/>
</return>
<msg time="2026-04-17T03:17:43.494554" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:43.438644" elapsed="0.055970"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:43.495179" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:43.494881" elapsed="0.000356"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:43.496237" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:43.495789" elapsed="0.000530">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:43.495567" elapsed="0.000845">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:43.495552" elapsed="0.000895">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:43.496660" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:43.496516" elapsed="0.000200"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:43.496500" elapsed="0.000239"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:43.495519" elapsed="0.001264">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:43.495292" elapsed="0.001553">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:43.392395" elapsed="0.104555">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:44.514525" elapsed="0.001701"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:44.512562" elapsed="0.003714"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.512536" elapsed="0.003767"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:44.518082" elapsed="0.002006"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:44.516359" elapsed="0.003771"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.516343" elapsed="0.003812"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:44.521912" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:44.520211" elapsed="0.001758"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.520194" elapsed="0.001797"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:44.523749" elapsed="0.000094"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:44.522045" elapsed="0.001839"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.522030" elapsed="0.001878"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:44.512294" elapsed="0.011665"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:44.526409" elapsed="0.000215"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:44.524422" elapsed="0.002242"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.524403" elapsed="0.002288"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:44.528970" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:44.526758" elapsed="0.002273"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.526739" elapsed="0.002320"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:44.524170" elapsed="0.004942"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:44.532234" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:44.545994" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:44.546291" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:44.532028" elapsed="0.014326"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:44.529736" elapsed="0.016749"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:44.547016" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:44.546545" elapsed="0.000615"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.529716" elapsed="0.017492"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:44.551415" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:44.547336" elapsed="0.004236"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:44.552698" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:44.551927" elapsed="0.000813"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:44.551627" elapsed="0.001165"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.547299" elapsed="0.005523"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:44.552875" elapsed="0.000051"/>
</return>
<msg time="2026-04-17T03:17:44.553101" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:44.529446" elapsed="0.023695"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:44.553933" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14267  bytes 47498522 (47.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7252  bytes 637360 (637.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 516 (516.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:44.553354" elapsed="0.000675"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:44.557492" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:44.607896" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:44.608172" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:44.557232" elapsed="0.050999"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:44.554806" elapsed="0.053512"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:44.608748" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:44.608375" elapsed="0.000505"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.554781" elapsed="0.054145"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:44.612756" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:44.609049" elapsed="0.003795"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:44.613600" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:44.613070" elapsed="0.000569"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:44.612880" elapsed="0.000809"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:44.609013" elapsed="0.004705"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:44.613766" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:17:44.613978" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:44.554414" elapsed="0.059601"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:44.614688" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:44.614232" elapsed="0.000545"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:44.616199" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:44.615604" elapsed="0.000697">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:44.615276" elapsed="0.001147">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:44.615254" elapsed="0.001218">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:44.616767" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:44.616569" elapsed="0.000282"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:44.616545" elapsed="0.000341"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:44.615204" elapsed="0.001744">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:44.614858" elapsed="0.002174">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:44.507900" elapsed="0.109275">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:45.633464" elapsed="0.001776"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:45.631606" elapsed="0.003691"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.631580" elapsed="0.003751"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:45.637267" elapsed="0.002085"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:45.635420" elapsed="0.003991"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.635397" elapsed="0.004040"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:45.641269" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:45.639496" elapsed="0.001832"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.639479" elapsed="0.001874"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:45.643111" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:45.641424" elapsed="0.001746"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.641407" elapsed="0.001787"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:45.631332" elapsed="0.011912"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:45.645524" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:45.643791" elapsed="0.001955"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.643772" elapsed="0.001999"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:45.647546" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:45.645827" elapsed="0.001776"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.645810" elapsed="0.001817"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:45.643547" elapsed="0.004129"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:45.650120" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:45.663328" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:45.663761" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:45.649935" elapsed="0.013929"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:45.648221" elapsed="0.015765"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:45.664637" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:45.664072" elapsed="0.000748"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.648203" elapsed="0.016712"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:45.669460" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:45.665098" elapsed="0.004474"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:45.670507" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:45.669828" elapsed="0.000736"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:45.669612" elapsed="0.001010"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.665044" elapsed="0.005613"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:45.670714" elapsed="0.000054"/>
</return>
<msg time="2026-04-17T03:17:45.670970" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:45.647945" elapsed="0.023071"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:45.671769" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14276  bytes 47499628 (47.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7265  bytes 640538 (640.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 516 (516.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:45.671237" elapsed="0.000636"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:45.675486" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:45.723208" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:45.723546" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:45.675221" elapsed="0.048385"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:45.672746" elapsed="0.050948"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:45.724092" elapsed="0.000096"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:45.723753" elapsed="0.000520"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.672719" elapsed="0.051601"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:45.728845" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:45.724483" elapsed="0.004498"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:45.730232" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:45.729342" elapsed="0.001085"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:45.729035" elapsed="0.001485"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:45.724443" elapsed="0.006135"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:45.730667" elapsed="0.000068"/>
</return>
<msg time="2026-04-17T03:17:45.731067" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:45.672299" elapsed="0.058844"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:45.732264" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:45.731528" elapsed="0.000903"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:45.733723" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:45.733267" elapsed="0.000535">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:45.733048" elapsed="0.000830">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:45.733033" elapsed="0.000879">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:45.734123" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:45.733981" elapsed="0.000200"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:45.733964" elapsed="0.000240"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:45.732999" elapsed="0.001250">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:45.732553" elapsed="0.001757">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:45.627882" elapsed="0.106545">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:46.753020" elapsed="0.001744"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:46.751255" elapsed="0.003561"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.751230" elapsed="0.003615"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:46.756705" elapsed="0.001993"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:46.754909" elapsed="0.003835"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.754890" elapsed="0.003881"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:46.760569" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:46.758832" elapsed="0.001800"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.758814" elapsed="0.001842"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:46.762485" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:46.760713" elapsed="0.001836"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.760697" elapsed="0.001878"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:46.750988" elapsed="0.011645"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:46.764869" elapsed="0.000218"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:46.763146" elapsed="0.001979"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.763127" elapsed="0.002083"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:46.767106" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:46.765356" elapsed="0.001809"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.765337" elapsed="0.001852"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:46.762881" elapsed="0.004361"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:46.770001" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:46.783128" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:46.783429" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:46.769794" elapsed="0.013681"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:46.767825" elapsed="0.015721"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:46.783875" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:46.783591" elapsed="0.000375"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.767807" elapsed="0.016194"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:46.787280" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:46.784097" elapsed="0.003352"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:46.788729" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:46.787823" elapsed="0.000974"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:46.787506" elapsed="0.001375"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.784070" elapsed="0.004860"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:46.789012" elapsed="0.000071"/>
</return>
<msg time="2026-04-17T03:17:46.789416" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:46.767549" elapsed="0.021933"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:46.790519" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14285  bytes 47500734 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7278  bytes 643716 (643.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 586 (586.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:46.789825" elapsed="0.000849"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:46.795086" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:46.843380" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:46.843830" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:46.794879" elapsed="0.049017"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:46.791943" elapsed="0.052063"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:46.844513" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:46.844072" elapsed="0.000580"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.791901" elapsed="0.052800"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:46.849123" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:46.844842" elapsed="0.004475"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:46.850596" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:46.849727" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:46.849375" elapsed="0.001321"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:46.844801" elapsed="0.005928"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:46.850786" elapsed="0.000052"/>
</return>
<msg time="2026-04-17T03:17:46.851131" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:46.791279" elapsed="0.059893"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:46.851881" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:46.851425" elapsed="0.000544"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:46.853496" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:46.852801" elapsed="0.000805">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:46.852467" elapsed="0.001249">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:46.852443" elapsed="0.001324">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:46.854090" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:46.853871" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:46.853846" elapsed="0.000365"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:46.852370" elapsed="0.001908">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:46.852049" elapsed="0.002321">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:46.746027" elapsed="0.108522">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:47.871050" elapsed="0.002109"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:47.868812" elapsed="0.004413"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.868787" elapsed="0.004477"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:47.875662" elapsed="0.002039"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:47.873354" elapsed="0.004395"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.873327" elapsed="0.004449"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:47.879919" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:47.877842" elapsed="0.002165"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.877823" elapsed="0.002215"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:47.881905" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:47.880106" elapsed="0.001867"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.880086" elapsed="0.001913"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:47.868552" elapsed="0.013517"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:47.884947" elapsed="0.000231"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:47.882753" elapsed="0.002464"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.882729" elapsed="0.002514"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:47.887119" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:47.885301" elapsed="0.001876"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.885284" elapsed="0.001919"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:47.882466" elapsed="0.004793"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:47.890094" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:47.903470" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:47.903847" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:47.889822" elapsed="0.014106"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:47.887987" elapsed="0.016042"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:47.904521" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:47.904095" elapsed="0.000559"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.887966" elapsed="0.016736"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:47.908441" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:47.904838" elapsed="0.003703"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:47.909486" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:47.908800" elapsed="0.000734"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:47.908579" elapsed="0.001011"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.904798" elapsed="0.004826"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:47.909683" elapsed="0.000051"/>
</return>
<msg time="2026-04-17T03:17:47.909933" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:47.887664" elapsed="0.022311"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:47.910806" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14295  bytes 47501910 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7291  bytes 646894 (646.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 586 (586.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:47.910255" elapsed="0.000693"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:47.914924" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:47.963589" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:47.963969" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:47.914635" elapsed="0.049395"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:47.911843" elapsed="0.052288"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:47.964757" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:47.964197" elapsed="0.000710"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.911814" elapsed="0.053143"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:47.968702" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:47.965096" elapsed="0.003704"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:47.969713" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:47.969059" elapsed="0.000698"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:47.968838" elapsed="0.000973"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:47.965057" elapsed="0.004787"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:47.969902" elapsed="0.000051"/>
</return>
<msg time="2026-04-17T03:17:47.970160" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:47.911380" elapsed="0.058834"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:47.971086" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:47.970620" elapsed="0.000559"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:47.972841" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:47.972056" elapsed="0.000928">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:47.971712" elapsed="0.001413">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:47.971687" elapsed="0.001504">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:47.973580" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:47.973324" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:47.973297" elapsed="0.000409"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:47.971635" elapsed="0.002142">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:47.971259" elapsed="0.002613">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:47.864029" elapsed="0.110006">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:48.989032" elapsed="0.002091"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:48.986805" elapsed="0.004376"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:48.986777" elapsed="0.004462"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:48.993485" elapsed="0.002467"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:48.991316" elapsed="0.004694"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:48.991293" elapsed="0.004752"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:48.998277" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:48.996123" elapsed="0.002226"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:48.996101" elapsed="0.002277"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:49.000618" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:48.998468" elapsed="0.002225"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:48.998447" elapsed="0.002275"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:48.986499" elapsed="0.014296"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:49.003588" elapsed="0.000253"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:49.001415" elapsed="0.002470"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:49.001375" elapsed="0.002540"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:49.006107" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:49.003983" elapsed="0.002190"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:49.003962" elapsed="0.002240"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:49.001089" elapsed="0.005176"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:49.009593" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:49.023450" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:49.023843" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:49.009322" elapsed="0.014560"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:49.006942" elapsed="0.017009"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:49.024291" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:49.024001" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:49.006920" elapsed="0.017497"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:49.026818" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:49.024504" elapsed="0.002390"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:49.027683" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:49.027106" elapsed="0.000612"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:49.026924" elapsed="0.000839"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:49.024481" elapsed="0.003308"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:49.027839" elapsed="0.000045"/>
</return>
<msg time="2026-04-17T03:17:49.028044" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:49.006624" elapsed="0.021454"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:49.028650" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14306  bytes 47503136 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7306  bytes 650212 (650.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 586 (586.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:49.028276" elapsed="0.000460"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:49.031947" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:49.083491" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:49.083765" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:49.031680" elapsed="0.052118"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:49.029455" elapsed="0.054406"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:49.084164" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:49.083901" elapsed="0.000336"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:49.029431" elapsed="0.054832"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:49.086907" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:49.084345" elapsed="0.002636"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:49.087768" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:49.087189" elapsed="0.000613"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:49.087013" elapsed="0.000833"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:49.084321" elapsed="0.003551"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:49.087917" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:17:49.088113" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:49.029085" elapsed="0.059060"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:49.088733" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:49.088362" elapsed="0.000442"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:49.090069" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:49.089539" elapsed="0.000620">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:49.089187" elapsed="0.001069">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:49.089168" elapsed="0.001128">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:49.090576" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:49.090397" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:49.090360" elapsed="0.000311"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:49.089126" elapsed="0.001599">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:49.088868" elapsed="0.001935">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:48.982240" elapsed="0.108691">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:50.111144" elapsed="0.001729"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:50.109398" elapsed="0.003527"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.109358" elapsed="0.003596"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:50.114766" elapsed="0.002033"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:50.113012" elapsed="0.003830"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.112995" elapsed="0.003873"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:50.118764" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:50.116926" elapsed="0.001916"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.116908" elapsed="0.001966"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:50.120831" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:50.118948" elapsed="0.001943"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.118926" elapsed="0.001989"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:50.109103" elapsed="0.011864"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:50.123150" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:50.121471" elapsed="0.001928"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.121454" elapsed="0.001971"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:50.125177" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:50.123480" elapsed="0.001751"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.123463" elapsed="0.001791"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:50.121204" elapsed="0.004097"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:50.129693" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:50.143312" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:50.143694" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:50.129495" elapsed="0.014263"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:50.125846" elapsed="0.018011"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:50.144557" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:50.144019" elapsed="0.000696"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.125829" elapsed="0.018935"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:50.148943" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:50.144902" elapsed="0.004174"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:50.150349" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:50.149472" elapsed="0.000973"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:50.149129" elapsed="0.001401"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.144862" elapsed="0.005716"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:50.150660" elapsed="0.000070"/>
</return>
<msg time="2026-04-17T03:17:50.151018" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:50.125588" elapsed="0.025491"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:50.152142" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14317  bytes 47504374 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7321  bytes 653522 (653.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 586 (586.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:50.151479" elapsed="0.000877"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:50.155431" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:50.202886" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:50.203266" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:50.155216" elapsed="0.048111"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:50.153430" elapsed="0.050043"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:50.203942" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:50.203543" elapsed="0.000531"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.153409" elapsed="0.050713"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:50.208496" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:50.204290" elapsed="0.004342"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:50.209651" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:50.208995" elapsed="0.000699"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:50.208687" elapsed="0.001060"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:50.204220" elapsed="0.005560"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:50.209835" elapsed="0.000050"/>
</return>
<msg time="2026-04-17T03:17:50.210077" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:50.153000" elapsed="0.057117"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:50.210896" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:50.210370" elapsed="0.000634"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:50.212560" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:50.211829" elapsed="0.000840">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:50.211509" elapsed="0.001355">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:50.211487" elapsed="0.001444">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:50.213256" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:50.213040" elapsed="0.000300"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:50.213014" elapsed="0.000359"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:50.211436" elapsed="0.002029">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:50.211099" elapsed="0.002458">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:50.105326" elapsed="0.108384">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:51.230568" elapsed="0.001738"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.228353" elapsed="0.004004"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.228327" elapsed="0.004071"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:51.234213" elapsed="0.001973"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.232462" elapsed="0.003769"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.232444" elapsed="0.003815"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.238055" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.236315" elapsed="0.001817"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.236298" elapsed="0.001866"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.240041" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.238236" elapsed="0.001865"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.238215" elapsed="0.001909"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:51.228089" elapsed="0.012086"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:51.242464" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.240668" elapsed="0.002019"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.240650" elapsed="0.002062"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.244462" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.242767" elapsed="0.001750"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.242750" elapsed="0.001791"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:51.240424" elapsed="0.004164"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:51.247040" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:51.260297" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:51.260706" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:51.246858" elapsed="0.013914"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.245110" elapsed="0.015760"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.261453" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.260937" elapsed="0.000655"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.245092" elapsed="0.016548"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.266136" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.261779" elapsed="0.004495"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.267972" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:51.267052" elapsed="0.000987"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.266329" elapsed="0.001792"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.261740" elapsed="0.006430"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:51.268252" elapsed="0.000069"/>
</return>
<msg time="2026-04-17T03:17:51.268638" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:51.244856" elapsed="0.023846"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.269785" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14328  bytes 47505588 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7335  bytes 656766 (656.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7  bytes 586 (586.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:51.269043" elapsed="0.000897"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:51.273926" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:51.319376" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:51.319772" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:51.273747" elapsed="0.046089"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.271960" elapsed="0.047976"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.320476" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.320002" elapsed="0.000623"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.271941" elapsed="0.048734"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.324990" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.320817" elapsed="0.004309"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.326404" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:51.325593" elapsed="0.000858"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.325182" elapsed="0.001323"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.320778" elapsed="0.005760"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:51.326596" elapsed="0.000051"/>
</return>
<msg time="2026-04-17T03:17:51.326847" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:51.271651" elapsed="0.055237"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.327646" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:51.327139" elapsed="0.000646"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.329439" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:51.328650" elapsed="0.000903">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:51.328288" elapsed="0.001389">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:51.328266" elapsed="0.001596">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.330319" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.330038" elapsed="0.000403"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:51.329997" elapsed="0.000482"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:51.328215" elapsed="0.002339">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:51.327890" elapsed="0.002809">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:51.224610" elapsed="0.106310">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<msg time="2026-04-17T03:17:51.331112" level="FAIL">Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>10s</arg>
<arg>1s</arg>
<arg>Validate Switch Output</arg>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:17:41.140288" elapsed="10.190988">Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.331705" elapsed="0.000041"/>
</kw>
<arg>${test_switch}</arg>
<doc>The commands neccessary to configure openflow on the given switch object should exist in the switch.base_openflow_config attribute.  Also, the commands/logic to verify that openflow is working are checked in this keyword and come
from switch.openflow_validation_cmd output where the validation strings are
stored in switch.openflow_enable_validations</doc>
<status status="FAIL" start="2026-04-17T03:17:40.804948" elapsed="10.526946">Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Enable OpenFlow" owner="SwitchUtils">
<arg>${test_switch}</arg>
<doc>executes the switch.openflow_enable_config on the given switch and validates that openflow is operational with the switch.openflow_validation_command against all the strings in the switch.openflow_enable_validations list.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.332157" elapsed="0.000036"/>
</kw>
<kw name="Get Switch Datapath ID" owner="SwitchUtils">
<var>${datapath_id_from_switch}</var>
<arg>${test_switch}</arg>
<doc>Using the connection index for the given switch, will execute the command string
"datapath_id_output_command" which will store the output in switch.datapath_id_output_string.
The switch object method "update_datapath_id" is called which is assumed to place the ODL
friendly (decimal) version of the datapath id in to switch.datapath_id and the value is also
returned from this keyword.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.332488" elapsed="0.000035"/>
</kw>
<kw name="Verify Switch In Operational Data Store" owner="SwitchUtils">
<arg>${test_switch}</arg>
<doc>Verifies the existence of the switch.datapath_id in the operational datastore.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.332760" elapsed="0.000428"/>
</kw>
<kw name="Disable OpenFlow" owner="SwitchUtils">
<arg>${test_switch}</arg>
<doc>executes the switch.openflow_disable_config on the given switch and validates that openflow is NOT operational with the switch.openflow_validation_command against all the strings in the switch.openflow_disable_validations list.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.333513" elapsed="0.000036"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>3s</arg>
<arg>1s</arg>
<arg>Verify Switch Not In Operational Data Store</arg>
<arg>${test_switch}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.333791" elapsed="0.000032"/>
</kw>
<tag>switch_qualification</tag>
<timeout value="5 minutes"/>
<status status="FAIL" start="2026-04-17T03:17:40.804334" elapsed="10.529724">Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</test>
<kw name="Switch Qualification Suite Teardown" type="TEARDOWN">
<kw name="Cleanup Switch" owner="SwitchUtils">
<kw name="Iterate Switch Commands From List" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:51.341497" elapsed="0.001641"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.339750" elapsed="0.003430"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.339723" elapsed="0.003484"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:51.344979" elapsed="0.002023"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.343263" elapsed="0.003782"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.343246" elapsed="0.003888"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.348920" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.347196" elapsed="0.001782"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.347178" elapsed="0.001825"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.350798" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.349058" elapsed="0.001800"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.349042" elapsed="0.001840"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:51.339512" elapsed="0.011421"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.351610" level="INFO">/sbin/ifconfig -a | egrep '^s' | awk '{print "sudo ovs-vsctl del-br",$1}' | sh</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:51.351290" elapsed="0.000368"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:51.353786" elapsed="0.000132"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.352069" elapsed="0.001883"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.352051" elapsed="0.001925"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.355705" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.354030" elapsed="0.001728"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.354014" elapsed="0.001767"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:51.351877" elapsed="0.003951"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:51.358188" level="INFO">Executing command '/sbin/ifconfig -a | egrep '^s' | awk '{print "sudo ovs-vsctl del-br",$1}' | sh'.</msg>
<msg time="2026-04-17T03:17:51.381235" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-04-17T03:17:51.381551" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:51.358051" elapsed="0.023559"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.356326" elapsed="0.025373"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.382118" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.381760" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.356305" elapsed="0.025985"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:51.386866" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.382446" elapsed="0.004555"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.388111" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:51.387361" elapsed="0.000808"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.387056" elapsed="0.001192"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.382379" elapsed="0.005918"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:51.388377" elapsed="0.000102"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:51.356088" elapsed="0.032610"/>
</kw>
<var name="${cmd}">/sbin/ifconfig -a | egrep '^s' | awk '{print "sudo ovs-vsctl del-br",$1}' | sh</var>
<status status="PASS" start="2026-04-17T03:17:51.351148" elapsed="0.037632"/>
</iter>
<var>${cmd}</var>
<value>@{cmd_list}</value>
<status status="PASS" start="2026-04-17T03:17:51.350987" elapsed="0.037864"/>
</for>
<arg>${switch}</arg>
<arg>${switch.cleanup_cmds}</arg>
<doc>Each string in the @{cmd_list} argument is executed on the switch.connection_index.</doc>
<status status="PASS" start="2026-04-17T03:17:51.337480" elapsed="0.051512"/>
</kw>
<arg>${test_switch}</arg>
<doc>will execute and command strings stored in switch.cleanup_cmds</doc>
<status status="PASS" start="2026-04-17T03:17:51.334856" elapsed="0.054301"/>
</kw>
<kw name="Close All Connections" owner="SSHLibrary">
<doc>Closes all open connections.</doc>
<status status="PASS" start="2026-04-17T03:17:51.389629" elapsed="0.000561"/>
</kw>
<kw name="Close All Connections" owner="Telnet">
<doc>Closes all open connections and empties the connection cache.</doc>
<status status="PASS" start="2026-04-17T03:17:51.390447" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:51.334602" elapsed="0.056128"/>
</kw>
<doc>TODO</doc>
<status status="FAIL" start="2026-04-17T03:17:38.306953" elapsed="13.083819"/>
</suite>
<suite id="s1-s4-s2" name="020 OpenFlow Actions" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Switch_Qualification/020_OpenFlow_Actions.robot">
<kw name="OpenFlow Actions Suite Setup" type="SETUP">
<kw name="Get Switch" owner="Ovs">
<msg time="2026-04-17T03:17:51.612148" level="INFO">${test_switch} = &lt;Ovs.Ovs object at 0x77d09c6b9cd0&gt;</msg>
<var>${test_switch}</var>
<arg>${SWITCH_CLASS}</arg>
<doc>Generic method that will allow Robot Code to pass a string
to this "keyword - Get Switch" and create an object of that
type.  (EX: Get Switch  OVS)</doc>
<status status="PASS" start="2026-04-17T03:17:51.611857" elapsed="0.000336"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.613135" level="INFO">${test_switch} = &lt;Ovs.Ovs object at 0x77d09c6b9cd0&gt;</msg>
<arg>${test_switch}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:17:51.612638" elapsed="0.000560"/>
</kw>
<kw name="Call Method" owner="BuiltIn">
<arg>${test_switch}</arg>
<arg>set_mgmt_ip</arg>
<arg>${SWITCH_IP}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:51.613535" elapsed="0.000455"/>
</kw>
<kw name="Call Method" owner="BuiltIn">
<arg>${test_switch}</arg>
<arg>set_controller_ip</arg>
<arg>${ODL_SYSTEM_IP}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:51.614409" elapsed="0.000316"/>
</kw>
<kw name="Call Method" owner="BuiltIn">
<arg>${test_switch}</arg>
<arg>set_mgmt_prompt</arg>
<arg>${SWITCH_PROMPT}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:51.614925" elapsed="0.000306"/>
</kw>
<kw name="Run Command On Controller" 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-04-17T03:17:51.617312" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:51.617003" elapsed="0.000367"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:51.616978" elapsed="0.000434"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:51.617805" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:17:51.617913" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:17:51.617623" elapsed="0.000316"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.618505" level="INFO">Attempting to execute command "ps -elf | grep java" on remote system "10.30.170.85" 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-04-17T03:17:51.618095" elapsed="0.000462"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:51.619089" level="INFO">${conn_id} = 1</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-04-17T03:17:51.618718" elapsed="0.000398"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:17:51.620124" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:17:51.620203" 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-04-17T03:17:51.619702" elapsed="0.000526"/>
</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-04-17T03:17:51.620409" elapsed="0.000333"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:17:51.622027" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:17:52.345016" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:17:51 UTC 2026

  System load:  0.08               Processes:             118
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:17:51.621653" elapsed="0.723520"/>
</kw>
<msg time="2026-04-17T03:17:52.345260" 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="PASS" start="2026-04-17T03:17:51.620916" elapsed="0.724431"/>
</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="PASS" start="2026-04-17T03:17:51.619334" elapsed="0.726149"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:52.346003" level="INFO">Executing command 'ps -elf | grep java'.</msg>
<msg time="2026-04-17T03:17:52.369144" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:52.369485" level="INFO">${stdout} = 0 S jenkins     3267    3252  0  80   0 -  1941 do_wai 03:17 ?        00:00:00 bash -c ps -elf | grep java
0 S jenkins     3269    3267  0  80   0 -  1752 pipe_r 03:17 ?        00:00:00 grep java</msg>
<msg time="2026-04-17T03:17:52.369603" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:17:52.345746" elapsed="0.023910"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:52.370047" elapsed="0.000622"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:52.371820" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:52.371150" elapsed="0.000767"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:17:52.372425" elapsed="0.000054"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:17:52.372095" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.372043" elapsed="0.000564"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:17:52.372973" elapsed="0.000061"/>
</return>
<status status="PASS" start="2026-04-17T03:17:52.372729" elapsed="0.000380"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.372694" elapsed="0.000471"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:17:52.373242" elapsed="0.000030"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:17:52.379635" elapsed="0.000791"/>
</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="PASS" start="2026-04-17T03:17:52.380814" elapsed="0.000433"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:52.381637" elapsed="0.000233"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:17:52.374344" elapsed="0.007645"/>
</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="PASS" start="2026-04-17T03:17:51.616501" elapsed="0.765765"/>
</kw>
<msg time="2026-04-17T03:17:52.382425" 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="PASS" start="2026-04-17T03:17:51.615909" elapsed="0.766635"/>
</kw>
<arg>${ODL_SYSTEM_IP}</arg>
<arg>ps -elf | grep java</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:17:51.615439" elapsed="0.767302"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:52.395007" level="INFO">MAKE: OpenVswitch
MODEL: OVS
IP: 10.30.171.160
PROMPT: &gt;
CONTROLLER_IP: 10.30.170.85
MGMT_PROTOCOL: ssh</msg>
<arg>MAKE: ${test_switch.make}\nMODEL: ${test_switch.model}\nIP: ${test_switch.mgmt_ip}\nPROMPT: ${test_switch.mgmt_prompt}\nCONTROLLER_IP: ${test_switch.of_controller_ip}\nMGMT_PROTOCOL: ${test_switch.mgmt_protocol}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:52.383172" elapsed="0.011886"/>
</kw>
<kw name="Ping" owner="SwitchUtils">
<kw name="Run" owner="OperatingSystem">
<msg time="2026-04-17T03:17:52.398329" level="INFO">Running command 'ping 10.30.171.160 -c 1 -W 1 2&gt;&amp;1'.</msg>
<msg time="2026-04-17T03:17:52.402434" level="INFO">${output} = PING 10.30.171.160 (10.30.171.160) 56(84) bytes of data.
64 bytes from 10.30.171.160: icmp_seq=1 ttl=64 time=1.00 ms

--- 10.30.171.160 ping statistics ---
1 packets transmitted, 1 received, 0% packet...</msg>
<var>${output}</var>
<arg>ping ${ip} -c 1 -W 1</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="PASS" start="2026-04-17T03:17:52.397509" elapsed="0.004958"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>1 packets transmitted, 1 received</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-04-17T03:17:52.402680" elapsed="0.000402"/>
</kw>
<arg>${test_switch.mgmt_ip}</arg>
<status status="PASS" start="2026-04-17T03:17:52.395259" elapsed="0.007890"/>
</kw>
<kw name="Initialize Switch" owner="SwitchUtils">
<kw name="Connect To Switch" owner="SwitchUtils">
<kw name="Open Connection Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Call Method" owner="BuiltIn">
<arg>${switch}</arg>
<arg>set_ssh_key</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:52.408642" elapsed="0.000500"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:52.405195" elapsed="0.004009"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.405165" elapsed="0.004076"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Call Method" owner="BuiltIn">
<arg>${switch}</arg>
<arg>set_mgmt_user</arg>
<arg>${TOOLS_SYSTEM_USER}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:52.412455" elapsed="0.000321"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:52.409322" elapsed="0.003497"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.409298" elapsed="0.003546"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:17:52.419222" level="INFO">${connection_index} = 3</msg>
<var>${connection_index}</var>
<arg>${switch.mgmt_ip}</arg>
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=30s</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:17:52.415018" elapsed="0.004232"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:52.412900" elapsed="0.006393"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${connection_index}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:52.419525" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:52.419318" elapsed="0.000266"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.412883" elapsed="0.006723"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:17:52.426221" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:17:52.760702" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:17:04 UTC 2026

  System load:  0.19               Processes:             110
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:17:38 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${switch.mgmt_user}</arg>
<arg>${switch.ssh_key}</arg>
<arg>any</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-04-17T03:17:52.421736" elapsed="0.339174"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:52.419662" elapsed="0.341522"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.419646" elapsed="0.341592"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Open Connection" owner="Telnet">
<var>${connection_index}</var>
<arg>${switch.mgmt_ip}</arg>
<doc>Opens a new Telnet connection to the given host and port.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:52.764696" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:52.761370" elapsed="0.003408"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:52.765566" level="INFO">${connection_index} = 3</msg>
<var>${connection_index}</var>
<arg>${connection_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:52.765045" elapsed="0.000556"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:52.764805" elapsed="0.000844"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.761328" elapsed="0.004349"/>
</if>
<return>
<value>${connection_index}</value>
<status status="PASS" start="2026-04-17T03:17:52.765742" elapsed="0.000054"/>
</return>
<msg time="2026-04-17T03:17:52.765966" level="INFO">${connection_index} = 3</msg>
<var>${connection_index}</var>
<arg>${switch}</arg>
<doc>Some switches require telnet access and others require ssh access.  Based on the
switch.mgmt_protocol, the connection open will be handled by the right robot
library (Telnet or SSHLibrary).  The connection_index is returned.</doc>
<status status="PASS" start="2026-04-17T03:17:52.404926" elapsed="0.361068"/>
</kw>
<kw name="Call Method" owner="BuiltIn">
<arg>${switch}</arg>
<arg>set_connection_index</arg>
<arg>${connection_index}</arg>
<doc>Calls the named method of the given object with the provided arguments.</doc>
<status status="PASS" start="2026-04-17T03:17:52.766202" elapsed="0.000427"/>
</kw>
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:52.769379" elapsed="0.002264"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:52.767229" elapsed="0.004457"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.767208" elapsed="0.004506"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:52.773872" elapsed="0.002227"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:52.771775" elapsed="0.004366"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.771757" elapsed="0.004409"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:52.778291" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:52.776225" elapsed="0.002126"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.776207" elapsed="0.002168"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:52.780526" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:52.778492" elapsed="0.002096"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.778473" elapsed="0.002140"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:52.766989" elapsed="0.013677"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Write Bare Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Write Bare" owner="SSHLibrary">
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-04-17T03:17:52.785445" elapsed="0.000313"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:52.783369" elapsed="0.002428"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.783351" elapsed="0.002471"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Write Bare" owner="Telnet">
<arg>${cmd}</arg>
<doc>Writes the given text, and nothing else, into the connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:52.788083" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:52.785913" elapsed="0.002233"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:52.785867" elapsed="0.002303"/>
</if>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Write Bare command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:52.783118" elapsed="0.005099"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-04-17T03:17:53.788949" level="INFO">Slept 1 second.</msg>
<arg>1</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-04-17T03:17:52.788440" elapsed="1.000734"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<msg time="2026-04-17T03:17:53.796558" level="INFO">pwd</msg>
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:53.796271" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:53.790653" elapsed="0.006026"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:53.790599" elapsed="0.006118"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:53.800013" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:53.796801" elapsed="0.003329"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:53.796776" elapsed="0.003386"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:53.790019" elapsed="0.010213"/>
</kw>
<var name="${cmd}">pwd</var>
<status status="PASS" start="2026-04-17T03:17:52.782850" elapsed="1.017430"/>
</iter>
<var>${cmd}</var>
<value>@{switch.connection_configs}</value>
<status status="PASS" start="2026-04-17T03:17:52.780730" elapsed="1.019599"/>
</for>
<arg>${switch}</arg>
<doc>Will Open a connection to the switch, which will set the switch.connection_index.
For each switch.connection_configs string, a write bare will be executed on the
switch connection.  The write bare is done becuase some switch consoles require
extra input (CR/LF, etc.) that are needed.  The connection_configs strings should
be sufficient to put the switch console in to a usuable state so that further
interactions with the switch can be used with the robot keyword "Execute
Command"</doc>
<status status="PASS" start="2026-04-17T03:17:52.404148" elapsed="1.396286"/>
</kw>
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:53.804055" elapsed="0.002756"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:53.801182" elapsed="0.005779"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:53.801157" elapsed="0.005840"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:53.809576" elapsed="0.002263"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:53.807078" elapsed="0.004803"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:53.807054" elapsed="0.004853"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:53.814019" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:53.811965" elapsed="0.002113"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:53.811948" elapsed="0.002154"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:53.816208" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:53.814158" elapsed="0.002109"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:53.814142" elapsed="0.002149"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:53.800896" elapsed="0.015442"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Write Bare Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Write Bare" owner="SSHLibrary">
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-04-17T03:17:53.820897" elapsed="0.000302"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:53.818836" elapsed="0.002403"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:53.818819" elapsed="0.002444"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Write Bare" owner="Telnet">
<arg>${cmd}</arg>
<doc>Writes the given text, and nothing else, into the connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:53.823552" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:53.821333" elapsed="0.002276"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:53.821302" elapsed="0.002331"/>
</if>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Write Bare command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:53.818607" elapsed="0.005074"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-04-17T03:17:54.824360" level="INFO">Slept 1 second.</msg>
<arg>1</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-04-17T03:17:53.823899" elapsed="1.000673"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<msg time="2026-04-17T03:17:54.829933" level="INFO">['/sbin/ifconfig -a | egrep \'^s\' | awk \'{print "sudo ovs-vsctl del-br",$1}\' | sh']</msg>
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:54.829727" elapsed="0.000293"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.826223" elapsed="0.003855"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.826189" elapsed="0.003932"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.833379" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.830211" elapsed="0.003267"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.830184" elapsed="0.003328"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:54.825867" elapsed="0.007722"/>
</kw>
<arg>Read Wrapper</arg>
<arg>${switch}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:17:54.825026" elapsed="0.008643"/>
</kw>
<var name="${cmd}">['/sbin/ifconfig -a | egrep \'^s\' | awk \'{print "sudo ovs-vsctl del-br",$1}\' | sh']</var>
<status status="PASS" start="2026-04-17T03:17:53.818356" elapsed="1.015367"/>
</iter>
<var>${cmd}</var>
<value>@{switch.initialization_cmds}</value>
<status status="PASS" start="2026-04-17T03:17:53.816423" elapsed="1.017354"/>
</for>
<if>
<branch type="IF" condition="&quot;${switch.initialization_type}&quot; == &quot;reboot&quot;">
<kw name="Wait For Switch Reboot" owner="SwitchUtils">
<arg>${switch}</arg>
<doc>If a switch has been set to reboot, it may take some time.  This keyword will first
make sure the switch has gone down (10 pings over 10 seconds should not see
a 100% success, although it may respond for a short time after the reload is
issued).  Then a poll is done with a single ping request every 5s until a success
is found, at which point it is assumed the switch is up and ready.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.836734" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.833876" elapsed="0.002945"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.833852" elapsed="0.003003"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.initialization_type}&quot; == &quot;reboot&quot;">
<kw name="Connect To Switch" owner="SwitchUtils">
<arg>${switch}</arg>
<doc>Will Open a connection to the switch, which will set the switch.connection_index.
For each switch.connection_configs string, a write bare will be executed on the
switch connection.  The write bare is done becuase some switch consoles require
extra input (CR/LF, etc.) that are needed.  The connection_configs strings should
be sufficient to put the switch console in to a usuable state so that further
interactions with the switch can be used with the robot keyword "Execute
Command"</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.839886" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.836931" elapsed="0.003043"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.836908" elapsed="0.003104"/>
</if>
<arg>${test_switch}</arg>
<doc>Will connect and execute all switch.initialization_cmds on the given switch.
In some cases, this may be a reboot.  If so, the switch.initialization_type can
be set to "reboot" and further logic is invoked to wait for the reboot to complete
and a reconnect to the switch is made.</doc>
<status status="PASS" start="2026-04-17T03:17:52.403593" elapsed="2.436538"/>
</kw>
<kw name="Configure OpenFlow" owner="SwitchUtils">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:54.841481" level="INFO">Applying configs to configure openflow on the given switch.</msg>
<arg>Applying configs to configure openflow on the given switch.</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:54.841073" elapsed="0.000481"/>
</kw>
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:54.845359" elapsed="0.002958"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.842300" elapsed="0.006073"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.842278" elapsed="0.006156"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:54.851381" elapsed="0.003113"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.848522" elapsed="0.006035"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.848496" elapsed="0.006102"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.857710" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.854685" elapsed="0.003113"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.854660" elapsed="0.003173"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.860683" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.857907" elapsed="0.002858"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.857886" elapsed="0.002912"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:54.842061" elapsed="0.018805"/>
</kw>
<kw name="Iterate Switch Commands From List" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:54.870408" elapsed="0.002007"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.868349" elapsed="0.004107"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.868330" elapsed="0.004150"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:54.874556" elapsed="0.002204"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.872535" elapsed="0.004266"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.872519" elapsed="0.004306"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.878905" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.876880" elapsed="0.002082"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.876864" elapsed="0.002121"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.881115" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.879047" elapsed="0.002128"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.879024" elapsed="0.002174"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:54.868134" elapsed="0.013111"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:54.881982" level="INFO">sudo ovs-vsctl add-br s1</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:54.881687" elapsed="0.000342"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:54.885870" elapsed="0.000139"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.882473" elapsed="0.003571"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.882455" elapsed="0.003614"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.888232" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.886126" elapsed="0.002161"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.886109" elapsed="0.002202"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:54.882267" elapsed="0.006092"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:54.891174" level="INFO">Executing command 'sudo ovs-vsctl add-br s1'.</msg>
<msg time="2026-04-17T03:17:54.915512" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-04-17T03:17:54.915802" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:54.891034" elapsed="0.024824"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.888915" elapsed="0.027039"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.916594" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.916019" elapsed="0.000710"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.888898" elapsed="0.027880"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.921327" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.916911" elapsed="0.004606"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:54.922348" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:54.921833" elapsed="0.000573"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.921558" elapsed="0.000904"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.916873" elapsed="0.005621"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:54.922549" elapsed="0.000054"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:54.888676" elapsed="0.034079"/>
</kw>
<var name="${cmd}">sudo ovs-vsctl add-br s1</var>
<status status="PASS" start="2026-04-17T03:17:54.881475" elapsed="0.041338"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:54.923622" level="INFO">sudo ovs-vsctl set bridge s1 protocols=OpenFlow13</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:54.923214" elapsed="0.000474"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:54.927639" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.924415" elapsed="0.003457"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.924367" elapsed="0.003540"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.930210" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.927989" elapsed="0.002275"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.927964" elapsed="0.002324"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:54.924077" elapsed="0.006257"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:54.933063" level="INFO">Executing command 'sudo ovs-vsctl set bridge s1 protocols=OpenFlow13'.</msg>
<msg time="2026-04-17T03:17:54.979522" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:54.979749" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:54.932931" elapsed="0.046875"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.930874" elapsed="0.049021"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.980470" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.979953" elapsed="0.000654"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.930856" elapsed="0.049798"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.985130" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.980778" elapsed="0.004440"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:54.985997" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:54.985545" elapsed="0.000491"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.985254" elapsed="0.000835"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.980743" elapsed="0.005377"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:54.986171" elapsed="0.000043"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:54.930640" elapsed="0.055714"/>
</kw>
<var name="${cmd}">sudo ovs-vsctl set bridge s1 protocols=OpenFlow13</var>
<status status="PASS" start="2026-04-17T03:17:54.922966" elapsed="0.063464"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:54.987183" level="INFO">sudo ovs-vsctl set-controller s1 tcp:10.30.170.85</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:54.986819" elapsed="0.000430"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:54.991299" elapsed="0.000208"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.987893" elapsed="0.003662"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.987868" elapsed="0.003722"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:54.993968" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:54.991667" elapsed="0.002355"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.991643" elapsed="0.002403"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:54.987618" elapsed="0.006474"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:54.996832" level="INFO">Executing command 'sudo ovs-vsctl set-controller s1 tcp:10.30.170.85'.</msg>
<msg time="2026-04-17T03:17:55.053096" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:55.053417" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:54.996701" elapsed="0.056784"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:54.994617" elapsed="0.058969"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.054251" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.053652" elapsed="0.000795"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:54.994599" elapsed="0.059900"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.059569" elapsed="0.000169"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.054654" elapsed="0.005177"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:55.061106" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:55.060334" elapsed="0.000835"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.059886" elapsed="0.001367"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.054603" elapsed="0.006699"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:55.061435" elapsed="0.000114"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:54.994369" elapsed="0.067458"/>
</kw>
<var name="${cmd}">sudo ovs-vsctl set-controller s1 tcp:10.30.170.85</var>
<status status="PASS" start="2026-04-17T03:17:54.986570" elapsed="0.075348"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:55.063234" level="INFO">sudo ifconfig s1 up</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:55.062650" elapsed="0.000688"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:55.067075" elapsed="0.000130"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.064451" elapsed="0.002789"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.064381" elapsed="0.002883"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.069414" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.067319" elapsed="0.002156"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.067302" elapsed="0.002196"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:55.063924" elapsed="0.005620"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:55.072345" level="INFO">Executing command 'sudo ifconfig s1 up'.</msg>
<msg time="2026-04-17T03:17:55.111246" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:55.111763" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:55.072176" elapsed="0.039670"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.070089" elapsed="0.041887"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.112713" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.112054" elapsed="0.000808"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.070070" elapsed="0.042866"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.118115" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.113152" elapsed="0.005061"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:55.119100" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:55.118558" elapsed="0.000582"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.118251" elapsed="0.000943"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.113102" elapsed="0.006125"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:55.119283" elapsed="0.000052"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:55.069827" elapsed="0.049685"/>
</kw>
<var name="${cmd}">sudo ifconfig s1 up</var>
<status status="PASS" start="2026-04-17T03:17:55.062211" elapsed="0.057360"/>
</iter>
<var>${cmd}</var>
<value>@{cmd_list}</value>
<status status="PASS" start="2026-04-17T03:17:54.881300" elapsed="0.238321"/>
</for>
<arg>${switch}</arg>
<arg>${switch.base_openflow_config}</arg>
<doc>Each string in the @{cmd_list} argument is executed on the switch.connection_index.</doc>
<status status="PASS" start="2026-04-17T03:17:54.864792" elapsed="0.254911"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:55.123447" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.120446" elapsed="0.003238"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.120419" elapsed="0.003299"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.126582" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.123792" elapsed="0.002844"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.123770" elapsed="0.002890"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:55.120093" elapsed="0.006614"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:55.140602" elapsed="0.002033"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.138263" elapsed="0.004417"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.138242" elapsed="0.004464"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:55.145027" elapsed="0.002276"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.142768" elapsed="0.004577"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.142747" elapsed="0.004743"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.149707" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.147558" elapsed="0.002209"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.147540" elapsed="0.002252"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.151923" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.149849" elapsed="0.002145"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.149833" elapsed="0.002188"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:55.138061" elapsed="0.014014"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:55.154702" elapsed="0.000136"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.152588" elapsed="0.002283"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.152570" elapsed="0.002326"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.157049" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.154967" elapsed="0.002138"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.154935" elapsed="0.002194"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:55.152366" elapsed="0.004809"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:55.159952" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:55.172809" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:55.173012" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:55.159805" elapsed="0.013253"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.157707" elapsed="0.015417"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.173638" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.173170" elapsed="0.000606"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.157685" elapsed="0.016138"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.179512" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.173962" elapsed="0.005733"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:55.181163" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:55.180288" elapsed="0.000947"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.179764" elapsed="0.001558"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.173917" elapsed="0.007455"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:55.181472" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:17:55.181652" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:55.157490" elapsed="0.024190"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:55.182147" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14383  bytes 47514050 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7400  bytes 669874 (669.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:55.181879" elapsed="0.000326"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:55.185369" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:55.271777" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:55.272175" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:55.185218" elapsed="0.087026"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.182806" elapsed="0.089780"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.273242" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.272666" elapsed="0.000747"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.182788" elapsed="0.090681"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.278854" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.273621" elapsed="0.005369"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:55.280289" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:55.279481" elapsed="0.000872"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:55.279045" elapsed="0.001474"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:55.273577" elapsed="0.006994"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:55.280656" elapsed="0.000077"/>
</return>
<msg time="2026-04-17T03:17:55.281044" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:55.182551" elapsed="0.098555"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:55.282160" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:55.281577" elapsed="0.000691"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:55.284839" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:55.283682" elapsed="0.001324">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:55.282998" elapsed="0.002174">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:55.282966" elapsed="0.002279">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:55.285703" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:55.285507" elapsed="0.000255"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:55.285361" elapsed="0.000424"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:55.282894" elapsed="0.002936">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:55.282426" elapsed="0.003465">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:55.134047" elapsed="0.151945">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:56.305359" elapsed="0.002010"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:56.303232" elapsed="0.004204"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.303209" elapsed="0.004256"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:56.309626" elapsed="0.002210"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:56.307527" elapsed="0.004356"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.307508" elapsed="0.004400"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:56.314071" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:56.311969" elapsed="0.002163"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.311951" elapsed="0.002293"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:56.316418" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:56.314329" elapsed="0.002154"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.314310" elapsed="0.002199"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:56.303018" elapsed="0.013547"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:56.319320" elapsed="0.000164"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:56.317050" elapsed="0.002471"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.317032" elapsed="0.002515"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:56.321687" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:56.319608" elapsed="0.002135"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.319591" elapsed="0.002177"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:56.316839" elapsed="0.004980"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:56.324657" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:56.338451" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:56.338727" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:56.324503" elapsed="0.014288"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:56.322355" elapsed="0.016533"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:56.339529" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:56.338952" elapsed="0.000723"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.322337" elapsed="0.017386"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:56.343679" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:56.339854" elapsed="0.003919"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:56.344633" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:56.344092" elapsed="0.000585"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:56.343811" elapsed="0.000920"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.339816" elapsed="0.004947"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:56.344819" elapsed="0.000050"/>
</return>
<msg time="2026-04-17T03:17:56.345059" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:56.322132" elapsed="0.022967"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:56.345815" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14394  bytes 47515288 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7413  bytes 673052 (673.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:56.345426" elapsed="0.000473"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:56.349992" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:56.440146" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:56.440548" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:56.349841" elapsed="0.090772"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:56.346726" elapsed="0.093992"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:56.441304" elapsed="0.000115"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:56.440785" elapsed="0.000822"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.346698" elapsed="0.094963"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:56.446663" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:56.441798" elapsed="0.005004"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:56.448042" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:56.447276" elapsed="0.000829"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:56.446857" elapsed="0.001328"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:56.441759" elapsed="0.006473"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:56.448311" elapsed="0.000098"/>
</return>
<msg time="2026-04-17T03:17:56.448695" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:56.346341" elapsed="0.102412"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:56.449854" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:56.449181" elapsed="0.000778"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:56.451248" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:56.450866" elapsed="0.000458">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:56.450590" elapsed="0.000838">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:56.450574" elapsed="0.000890">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:56.451723" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:56.451533" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:56.451516" elapsed="0.000286"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:56.450536" elapsed="0.001310">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:56.450073" elapsed="0.001835">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:56.297677" elapsed="0.154332">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:57.471573" elapsed="0.002038"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:57.469396" elapsed="0.004269"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.469357" elapsed="0.004335"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:57.475927" elapsed="0.002238"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:57.473750" elapsed="0.004458"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.473733" elapsed="0.004500"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:57.480866" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:57.478290" elapsed="0.002647"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.478273" elapsed="0.002694"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:57.483179" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:57.481036" elapsed="0.002203"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.481016" elapsed="0.002310"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:57.469178" elapsed="0.014219"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:57.485936" elapsed="0.000136"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:57.483866" elapsed="0.002271"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.483849" elapsed="0.002314"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:57.488253" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:57.486219" elapsed="0.002087"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.486202" elapsed="0.002127"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:57.483661" elapsed="0.004715"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:57.491129" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:57.504512" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:57.504784" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:57.490986" elapsed="0.013872"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:57.488907" elapsed="0.016098"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:57.505651" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:57.505085" elapsed="0.000720"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.488889" elapsed="0.016970"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:57.511162" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:57.506009" elapsed="0.005240"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:57.512058" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:57.511563" elapsed="0.000536"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:57.511283" elapsed="0.000867"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.505963" elapsed="0.006217"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:57.512234" elapsed="0.000052"/>
</return>
<msg time="2026-04-17T03:17:57.512490" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:57.488688" elapsed="0.023840"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:57.513159" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14406  bytes 47516580 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7427  bytes 676304 (676.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:57.512802" elapsed="0.000440"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:57.517373" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:57.563505" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:57.563851" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:57.517184" elapsed="0.046729"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:57.514016" elapsed="0.050003"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:57.564665" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:57.564088" elapsed="0.000715"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.513991" elapsed="0.050861"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:57.569847" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:57.564989" elapsed="0.005090"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:57.571033" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:57.570631" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:57.570141" elapsed="0.000968"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:57.564949" elapsed="0.006186"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:57.571179" elapsed="0.000046"/>
</return>
<msg time="2026-04-17T03:17:57.571372" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:57.513680" elapsed="0.057735"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:57.571868" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:57.571611" elapsed="0.000306"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:57.572922" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:57.572522" elapsed="0.000478">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:57.572243" elapsed="0.000831">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:57.572229" elapsed="0.000879">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:57.573365" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:57.573177" elapsed="0.000262"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:57.573160" elapsed="0.000302"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:57.572194" elapsed="0.001313">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:57.571974" elapsed="0.001595">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:57.465200" elapsed="0.108476">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:58.592484" elapsed="0.001992"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:58.590342" elapsed="0.004187"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.590317" elapsed="0.004240"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:58.596662" elapsed="0.002182"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:58.594615" elapsed="0.004269"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.594597" elapsed="0.004312"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:58.601030" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:58.598990" elapsed="0.002098"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.598972" elapsed="0.002165"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:58.603258" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:58.601193" elapsed="0.002125"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.601177" elapsed="0.002164"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:58.590132" elapsed="0.013273"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:58.606216" elapsed="0.000139"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:58.603849" elapsed="0.002556"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.603832" elapsed="0.002600"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:58.608905" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:58.606488" elapsed="0.002476"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.606472" elapsed="0.002517"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:58.603654" elapsed="0.005383"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:58.611835" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:58.625259" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:58.625453" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:58.611693" elapsed="0.013803"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:58.609568" elapsed="0.015988"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:58.626048" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:58.625597" elapsed="0.000579"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.609551" elapsed="0.016671"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:58.631085" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:58.626350" elapsed="0.004865"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:58.632515" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:58.631700" elapsed="0.000888"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:58.631268" elapsed="0.001444"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.626314" elapsed="0.006452"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:58.632850" elapsed="0.000077"/>
</return>
<msg time="2026-04-17T03:17:58.633213" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:58.609334" elapsed="0.023940"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:58.634463" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14416  bytes 47517752 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7441  bytes 679548 (679.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:58.633817" elapsed="0.000800"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:58.638126" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:58.687164" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:58.687611" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:58.637989" elapsed="0.049699"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:58.635851" elapsed="0.051952"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:58.688506" elapsed="0.000087"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:58.687904" elapsed="0.000780"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.635831" elapsed="0.052901"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:58.694045" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:58.688872" elapsed="0.005312"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:58.695673" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:58.694748" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:58.694238" elapsed="0.001601"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:58.688831" elapsed="0.007039"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:58.695912" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:17:58.696094" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:58.635378" elapsed="0.060744"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:58.696627" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:58.696322" elapsed="0.000357"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:58.697729" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:58.697303" elapsed="0.000523">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:58.697033" elapsed="0.000875">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:58.697018" elapsed="0.000926">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:58.698209" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:58.698015" elapsed="0.000252"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:58.697998" elapsed="0.000292"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:58.696983" elapsed="0.001353">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:58.696738" elapsed="0.001677">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:58.586178" elapsed="0.112344">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:17:59.720556" elapsed="0.002023"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:59.718423" elapsed="0.004209"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.718397" elapsed="0.004264"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:17:59.724895" elapsed="0.002346"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:59.722720" elapsed="0.004569"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.722700" elapsed="0.004615"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:59.729637" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:59.727374" elapsed="0.002324"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.727357" elapsed="0.002366"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:59.731945" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:59.729779" elapsed="0.002226"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.729763" elapsed="0.002266"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:17:59.718199" elapsed="0.013880"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:17:59.734649" elapsed="0.000135"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:59.732573" elapsed="0.002247"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.732555" elapsed="0.002289"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:59.736960" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:59.734901" elapsed="0.002183"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.734884" elapsed="0.002225"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:59.732350" elapsed="0.004806"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:59.739936" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:17:59.753915" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:59.754145" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:59.739753" elapsed="0.014454"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:59.737693" elapsed="0.016602"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:59.754873" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:59.754354" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.737676" elapsed="0.017383"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:59.760024" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:59.755186" elapsed="0.004979"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:59.761181" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:59.760656" elapsed="0.000569"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:59.760220" elapsed="0.001059"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.755151" elapsed="0.006160"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:59.761368" elapsed="0.000074"/>
</return>
<msg time="2026-04-17T03:17:59.761633" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:59.737480" elapsed="0.024194"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:59.762359" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14425  bytes 47518858 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7454  bytes 682726 (682.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:59.761986" elapsed="0.000486"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:17:59.766917" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:17:59.815559" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:17:59.815870" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:17:59.766707" elapsed="0.049237"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:59.763281" elapsed="0.052761"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:59.816619" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:59.816104" elapsed="0.000649"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.763255" elapsed="0.053544"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:59.821526" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:59.816933" elapsed="0.004686"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:17:59.822525" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:17:59.821975" elapsed="0.000593"/>
</kw>
<status status="PASS" start="2026-04-17T03:17:59.821656" elapsed="0.000968"/>
</branch>
<status status="PASS" start="2026-04-17T03:17:59.816895" elapsed="0.005761"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:17:59.822709" elapsed="0.000052"/>
</return>
<msg time="2026-04-17T03:17:59.822957" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:17:59.762931" elapsed="0.060148"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:17:59.823801" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:17:59.823404" elapsed="0.000503"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:17:59.825427" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:17:59.824817" elapsed="0.000721">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:17:59.824418" elapsed="0.001230">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:17:59.824375" elapsed="0.001325">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:17:59.826102" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:17:59.825803" elapsed="0.000388"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:17:59.825778" elapsed="0.000449"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:17:59.824325" elapsed="0.001968">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:17:59.823997" elapsed="0.002406">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:17:59.714085" elapsed="0.112476">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:18:00.845580" elapsed="0.001981"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:00.843395" elapsed="0.004218"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.843354" elapsed="0.004287"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:00.849825" elapsed="0.002189"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:00.847699" elapsed="0.004357"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.847682" elapsed="0.004398"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:00.854491" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:00.852136" elapsed="0.002423"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.852119" elapsed="0.002464"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:00.856673" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:00.854638" elapsed="0.002095"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.854622" elapsed="0.002135"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:18:00.843163" elapsed="0.013647"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:18:00.859504" elapsed="0.000137"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:00.857279" elapsed="0.002397"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.857262" elapsed="0.002438"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:00.862318" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:00.859756" elapsed="0.002661"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.859739" elapsed="0.002714"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:00.857079" elapsed="0.005442"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:00.866085" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:18:00.879615" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:00.879848" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:00.865946" elapsed="0.013964"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:00.863244" elapsed="0.016754"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:00.880550" elapsed="0.000111"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:00.880057" elapsed="0.000688"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.863220" elapsed="0.017572"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:00.885694" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:00.880919" elapsed="0.004908"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:00.887024" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:00.886273" elapsed="0.000814"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:00.885879" elapsed="0.001288"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.880882" elapsed="0.006331"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:00.887291" elapsed="0.000069"/>
</return>
<msg time="2026-04-17T03:18:00.887676" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:00.862942" elapsed="0.024809"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:00.888892" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14434  bytes 47519964 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7467  bytes 685904 (685.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:00.888172" elapsed="0.000892"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:00.892346" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:18:00.940423" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:00.941492" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:00.892199" elapsed="0.049461"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:00.890058" elapsed="0.051750"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:00.942783" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:00.941921" elapsed="0.001023"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.890038" elapsed="0.052955"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:00.948361" elapsed="0.000091"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:00.943151" elapsed="0.005392"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:00.949941" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:00.949198" elapsed="0.000776"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:00.948598" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:00.943106" elapsed="0.006928"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:00.950081" elapsed="0.000046"/>
</return>
<msg time="2026-04-17T03:18:00.950267" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:00.889778" elapsed="0.060517"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:00.950793" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:00.950515" elapsed="0.000437"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:18:00.952026" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:18:00.951623" elapsed="0.000496">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:18:00.951333" elapsed="0.000863">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:18:00.951316" elapsed="0.000914">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:00.952507" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:00.952301" elapsed="0.000266"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:00.952284" elapsed="0.000306"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:18:00.951276" elapsed="0.001390">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:18:00.951019" elapsed="0.001714">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:18:00.837913" elapsed="0.114931">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:18:01.971735" elapsed="0.002020"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:01.969588" elapsed="0.004218"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:01.969563" elapsed="0.004269"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:01.975975" elapsed="0.002314"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:01.973893" elapsed="0.004439"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:01.973876" elapsed="0.004481"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:01.980582" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:01.978431" elapsed="0.002213"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:01.978412" elapsed="0.002257"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:01.982788" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:01.980724" elapsed="0.002151"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:01.980708" elapsed="0.002196"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:18:01.969360" elapsed="0.013595"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:18:01.985531" elapsed="0.000133"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:01.983408" elapsed="0.002291"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:01.983373" elapsed="0.002351"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:01.987926" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:01.985778" elapsed="0.002210"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:01.985762" elapsed="0.002249"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:01.983197" elapsed="0.004866"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:01.990934" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:18:02.004004" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:02.004285" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:01.990785" elapsed="0.013699"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:01.988659" elapsed="0.015918"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:02.005083" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:02.004635" elapsed="0.000576"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:01.988641" elapsed="0.016615"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:02.010753" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:02.005442" elapsed="0.005397"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:02.011675" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:02.011135" elapsed="0.000585"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:02.010873" elapsed="0.000907"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:02.005343" elapsed="0.006467"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:02.011864" elapsed="0.000054"/>
</return>
<msg time="2026-04-17T03:18:02.012095" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:01.988428" elapsed="0.023706"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:02.012785" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14444  bytes 47521136 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7481  bytes 689148 (689.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:02.012426" elapsed="0.000441"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:02.018464" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:18:02.067888" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:02.068156" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:02.018313" elapsed="0.049906"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:02.013659" elapsed="0.054645"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:02.068918" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:02.068361" elapsed="0.000699"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:02.013634" elapsed="0.055473"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:02.074439" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:02.069245" elapsed="0.005352"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:02.075944" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:02.075136" elapsed="0.000876"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:02.074654" elapsed="0.001451"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:02.069197" elapsed="0.006974"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:02.076258" elapsed="0.000071"/>
</return>
<msg time="2026-04-17T03:18:02.076657" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:02.013267" elapsed="0.063454"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:02.077789" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:02.077153" elapsed="0.000739"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:18:02.080328" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:18:02.079274" elapsed="0.001376">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:18:02.078641" elapsed="0.002208">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:18:02.078602" elapsed="0.002328">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:02.081722" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:02.081169" elapsed="0.000689"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:02.081122" elapsed="0.000762"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:18:02.078515" elapsed="0.003415">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:18:02.078008" elapsed="0.003986">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:18:01.965323" elapsed="0.116786">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:18:03.101656" elapsed="0.002078"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:03.099551" elapsed="0.004235"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.099524" elapsed="0.004290"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:03.105989" elapsed="0.002196"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:03.103872" elapsed="0.004354"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.103856" elapsed="0.004395"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:03.110418" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:03.108307" elapsed="0.002171"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.108291" elapsed="0.002210"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:03.112620" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:03.110556" elapsed="0.002124"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.110540" elapsed="0.002164"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:18:03.099321" elapsed="0.013434"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:18:03.115794" elapsed="0.000174"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:03.113193" elapsed="0.002813"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.113176" elapsed="0.002855"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:03.118358" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:03.116087" elapsed="0.002342"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.116070" elapsed="0.002383"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:03.113000" elapsed="0.005501"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:03.121553" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:18:03.135045" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:03.135256" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:03.121407" elapsed="0.013892"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:03.119007" elapsed="0.016358"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:03.135783" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:03.135433" elapsed="0.000435"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.118989" elapsed="0.017001"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:03.139361" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:03.136082" elapsed="0.003418"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:03.140465" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:03.139858" elapsed="0.000651"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:03.139545" elapsed="0.001017"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.136056" elapsed="0.004536"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:03.140646" elapsed="0.000051"/>
</return>
<msg time="2026-04-17T03:18:03.140875" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:03.118794" elapsed="0.022120"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:03.141647" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14454  bytes 47522308 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7495  bytes 692392 (692.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:03.141191" elapsed="0.000539"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:03.145886" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:18:03.196452" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:03.196866" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:03.145698" elapsed="0.051240"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:03.142599" elapsed="0.054466"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:03.197916" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:03.197159" elapsed="0.000947"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.142574" elapsed="0.055679"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:03.204447" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:03.198487" elapsed="0.006123"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:03.206319" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:03.205139" elapsed="0.001321"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:03.204669" elapsed="0.001915"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:03.198434" elapsed="0.008219"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:03.206781" elapsed="0.000114"/>
</return>
<msg time="2026-04-17T03:18:03.207099" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:03.142236" elapsed="0.064901"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:03.207752" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:03.207453" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:18:03.208925" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:18:03.208495" elapsed="0.000514">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:18:03.208185" elapsed="0.000905">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:18:03.208169" elapsed="0.001067">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:03.209544" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:03.209319" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:03.209300" elapsed="0.000363"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:18:03.208128" elapsed="0.001584">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:18:03.207871" elapsed="0.001909">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:18:03.093322" elapsed="0.116568">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:18:04.228869" elapsed="0.002261"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:04.226443" elapsed="0.004742"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.226415" elapsed="0.004802"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:04.233422" elapsed="0.002265"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:04.231291" elapsed="0.004444"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.231271" elapsed="0.004491"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:04.237909" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:04.235826" elapsed="0.002146"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.235806" elapsed="0.002190"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:04.240196" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:04.238055" elapsed="0.002205"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.238038" elapsed="0.002247"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:18:04.226183" elapsed="0.014159"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:18:04.243055" elapsed="0.000150"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:04.240863" elapsed="0.002379"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.240845" elapsed="0.002422"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:04.245403" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:04.243323" elapsed="0.002139"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.243306" elapsed="0.002180"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:04.240649" elapsed="0.004888"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:04.248352" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:18:04.261701" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:04.261931" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:04.248196" elapsed="0.013780"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:04.246081" elapsed="0.015970"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:04.262513" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:04.262099" elapsed="0.000505"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.246064" elapsed="0.016571"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:04.267991" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:04.262731" elapsed="0.005360"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:04.269076" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:04.268543" elapsed="0.000577"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:04.268221" elapsed="0.000955"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.262704" elapsed="0.006504"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:04.269264" elapsed="0.000053"/>
</return>
<msg time="2026-04-17T03:18:04.269528" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:04.245853" elapsed="0.023716"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:04.270257" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14463  bytes 47523414 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7508  bytes 695570 (695.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:04.269859" elapsed="0.000488"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:04.274897" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:18:04.319755" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:04.320087" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:04.274678" elapsed="0.045471"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:04.271242" elapsed="0.049009"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:04.320881" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:04.320314" elapsed="0.000701"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.271209" elapsed="0.049854"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:04.325496" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:04.321197" elapsed="0.004397"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:04.326457" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:04.325917" elapsed="0.000583"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:04.325630" elapsed="0.000925"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:04.321159" elapsed="0.005427"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:04.326649" elapsed="0.000059"/>
</return>
<msg time="2026-04-17T03:18:04.326913" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:04.270814" elapsed="0.056160"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:04.327868" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:04.327434" elapsed="0.000508"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:18:04.329443" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:18:04.328846" elapsed="0.000711">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:18:04.328434" elapsed="0.001231">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:18:04.328409" elapsed="0.001306">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:04.330186" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:04.329899" elapsed="0.000374"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:04.329872" elapsed="0.000435"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:18:04.328337" elapsed="0.002036">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:18:04.328024" elapsed="0.002476">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:18:04.221939" elapsed="0.108712">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Validate Switch Output" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:18:05.349332" elapsed="0.002089"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:05.347201" elapsed="0.004273"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.347177" elapsed="0.004325"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:05.353775" elapsed="0.002242"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:05.351565" elapsed="0.004498"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.351547" elapsed="0.004542"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.358442" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.356150" elapsed="0.002355"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.356132" elapsed="0.002398"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.360940" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.358587" elapsed="0.002416"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.358570" elapsed="0.002457"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:18:05.346990" elapsed="0.014093"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:18:05.363860" elapsed="0.000149"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:05.361586" elapsed="0.002459"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.361568" elapsed="0.002502"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.366191" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.364128" elapsed="0.002120"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.364110" elapsed="0.002162"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:05.361359" elapsed="0.004963"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:05.369432" level="INFO">Executing command '/sbin/ifconfig'.</msg>
<msg time="2026-04-17T03:18:05.382978" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:05.383249" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:05.369255" elapsed="0.014057"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:05.366870" elapsed="0.016583"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.384053" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.383518" elapsed="0.000666"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.366852" elapsed="0.017378"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.389247" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.384361" elapsed="0.005050"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:05.390671" level="INFO">${output} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:05.389884" elapsed="0.000852"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:05.389468" elapsed="0.001348"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.384324" elapsed="0.006672"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:05.391087" elapsed="0.000071"/>
</return>
<msg time="2026-04-17T03:18:05.391469" level="INFO">${tmp} = ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x2...</msg>
<var>${tmp}</var>
<arg>${switch}</arg>
<arg>/sbin/ifconfig</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:05.366647" elapsed="0.024885"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:05.392299" level="INFO">ens3: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1458
        inet 10.30.171.160  netmask 255.255.254.0  broadcast 10.30.171.255
        inet6 fe80::f816:3eff:feb0:897d  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether fa:16:3e:b0:89:7d  txqueuelen 1000  (Ethernet)
        RX packets 14473  bytes 47524574 (47.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7523  bytes 698888 (698.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt;  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10&lt;host&gt;
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 350  bytes 31110 (31.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 350  bytes 31110 (31.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

s1: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt;  mtu 1500
        inet6 fe80::9c1c:ebff:fe5e:584f  prefixlen 64  scopeid 0x20&lt;link&gt;
        ether 9e:1c:eb:5e:58:4f  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8  bytes 656 (656.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0</msg>
<arg>${tmp}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:05.392020" elapsed="0.000338"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:05.395196" level="INFO">Executing command 'sudo ovs-vsctl show'.</msg>
<msg time="2026-04-17T03:18:05.443766" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:05.444097" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:05.395047" elapsed="0.049113"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:05.392931" elapsed="0.051334"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.444935" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.444334" elapsed="0.000735"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.392912" elapsed="0.052204"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.450149" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.445256" elapsed="0.005027"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:05.451531" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:05.450774" elapsed="0.000821"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:05.450337" elapsed="0.001339"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.445215" elapsed="0.006559"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:05.451858" elapsed="0.000072"/>
</return>
<msg time="2026-04-17T03:18:05.452124" level="INFO">${output} = 9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version...</msg>
<var>${output}</var>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:05.392681" elapsed="0.059470"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:05.452653" level="INFO">9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:05.452369" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;true&quot;">
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:18:05.453724" level="FAIL">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:18:05.453282" elapsed="0.000518">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<status status="FAIL" start="2026-04-17T03:18:05.453025" elapsed="0.000850">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</branch>
<status status="FAIL" start="2026-04-17T03:18:05.453011" elapsed="0.000896">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</if>
<if>
<branch type="IF" condition="&quot;${should_exist}&quot; == &quot;false&quot;">
<kw name="Should Not Match Regexp" owner="BuiltIn">
<arg>${output}</arg>
<arg>${str}</arg>
<doc>Fails if ``string`` matches ``pattern`` as a regular expression.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.454170" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.453976" elapsed="0.000251"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:05.453959" elapsed="0.000291"/>
</if>
<var name="${str}">is_connected: true</var>
<status status="FAIL" start="2026-04-17T03:18:05.452977" elapsed="0.001317">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</iter>
<var>${str}</var>
<value>@{validations}</value>
<status status="FAIL" start="2026-04-17T03:18:05.452758" elapsed="0.001677">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</for>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>A generic keyword that will execute one command on the switch, and check for each string in the @{validations} argument.  There is a boolean flag ${should_exist} that can be used to check that the validations are or are NOT in the output of the command executed.</doc>
<status status="FAIL" start="2026-04-17T03:18:05.342916" elapsed="0.111625">'9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<msg time="2026-04-17T03:18:05.454648" level="FAIL">Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</msg>
<arg>10s</arg>
<arg>1s</arg>
<arg>Validate Switch Output</arg>
<arg>${switch}</arg>
<arg>${switch.openflow_validation_cmd}</arg>
<arg>${switch.openflow_enable_validations}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:17:55.126916" elapsed="10.327835">Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:05.455039" elapsed="0.000030"/>
</kw>
<arg>${test_switch}</arg>
<doc>The commands neccessary to configure openflow on the given switch object should exist in the switch.base_openflow_config attribute.  Also, the commands/logic to verify that openflow is working are checked in this keyword and come
from switch.openflow_validation_cmd output where the validation strings are
stored in switch.openflow_enable_validations</doc>
<status status="FAIL" start="2026-04-17T03:17:54.840555" elapsed="10.614608">Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<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="NOT RUN" start="2026-04-17T03:18:05.455367" elapsed="0.000041"/>
</kw>
<status status="FAIL" start="2026-04-17T03:17:51.610892" elapsed="13.844617">Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</kw>
<test id="s1-s4-s2-t1" name="INPORT" line="56">
<doc>OF1.3: OFPP_INPORT = 0xfffffff8, /* Send the packet out the input port. This
reserved port must be explicitly used
in order to send back out of the input
port. */
</doc>
<tag>inport</tag>
<status status="FAIL" start="2026-04-17T03:18:05.455620" elapsed="0.000782">Parent suite setup failed:
Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</test>
<test id="s1-s4-s2-t2" name="TABLE" line="59">
<doc>OF1.3: OFPP_TABLE = 0xfffffff9, /* Submit the packet to the first flow table NB: This destination port can only be used in packet-out messages. */</doc>
<tag>table</tag>
<status status="FAIL" start="2026-04-17T03:18:05.456712" elapsed="0.000516">Parent suite setup failed:
Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</test>
<test id="s1-s4-s2-t3" name="NORMAL" line="62">
<doc>OF1.3 OFPP_NORMAL = 0xfffffffa, /* Process with normal L2/L3 switching. */</doc>
<tag>normal</tag>
<status status="FAIL" start="2026-04-17T03:18:05.457552" elapsed="0.000406">Parent suite setup failed:
Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</test>
<test id="s1-s4-s2-t4" name="FLOOD" line="65">
<doc>OF1.3 OFPP_FLOOD = 0xfffffffb, /* All physical ports in VLAN, except input port and those blocked or link down. */</doc>
<tag>flood</tag>
<status status="FAIL" start="2026-04-17T03:18:05.458254" elapsed="0.000480">Parent suite setup failed:
Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</test>
<test id="s1-s4-s2-t5" name="ALL" line="68">
<doc>OF1.3: OFPP_ALL = 0xfffffffc, /* All physical ports except input port. */</doc>
<tag>all</tag>
<status status="FAIL" start="2026-04-17T03:18:05.459022" elapsed="0.000413">Parent suite setup failed:
Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</test>
<test id="s1-s4-s2-t6" name="CONTROLLER" line="71">
<doc>OF1.3 OFPP_CONTROLLER = 0xfffffffd, /* Send to controller. */</doc>
<tag>controller</tag>
<status status="FAIL" start="2026-04-17T03:18:05.459807" elapsed="0.000400">Parent suite setup failed:
Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</test>
<test id="s1-s4-s2-t7" name="LOCAL" line="74">
<doc>OF1.3 OFPP_LOCAL = 0xfffffffe, /* Local openflow "port". */</doc>
<tag>local</tag>
<status status="FAIL" start="2026-04-17T03:18:05.460549" elapsed="0.000374">Parent suite setup failed:
Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</test>
<kw name="OpenFlow Actions Suite Teardown" type="TEARDOWN">
<kw name="Clean OVSDB Test Environment" owner="OVSDB">
<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-04-17T03:18:05.464450" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:05.464145" elapsed="0.000364"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:05.464127" elapsed="0.000406"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:05.464820" level="INFO">index=3
host=10.30.171.160
alias=None
port=22
timeout=5 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-04-17T03:18:05.464927" level="INFO">${current_ssh_connection} = index=3
host=10.30.171.160
alias=None
port=22
timeout=5 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:18:05.464688" elapsed="0.000266"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:05.465507" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:18:05.465110" elapsed="0.000443"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:05.466090" 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-04-17T03:18:05.465712" elapsed="0.000403"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:18:05.467045" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:05.467124" 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-04-17T03:18:05.466723" elapsed="0.000427"/>
</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-04-17T03:18:05.467315" elapsed="0.000343"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:05.468557" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:06.040153" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:17:52 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:05.468223" elapsed="0.572130"/>
</kw>
<msg time="2026-04-17T03:18:06.040467" 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="PASS" start="2026-04-17T03:18:05.467857" elapsed="0.572715"/>
</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="PASS" start="2026-04-17T03:18:05.466334" elapsed="0.574355"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:06.041707" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:18:07.240364" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:07.240801" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:18:07.240952" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:18:06.041132" elapsed="1.199883"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:07.241543" elapsed="0.000539"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:07.243239" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --if-exists del-br s1
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:07.242593" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:07.244009" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:07.243711" elapsed="0.000407"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:07.243660" elapsed="0.000509"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:18:07.244566" elapsed="0.000070"/>
</return>
<status status="PASS" start="2026-04-17T03:18:07.244289" elapsed="0.000422"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:07.244254" elapsed="0.000512"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:07.244842" elapsed="0.000032"/>
</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-04-17T03:18:07.249562" elapsed="0.000212"/>
</kw>
<msg time="2026-04-17T03:18:07.249837" 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-04-17T03:18:07.248715" elapsed="0.001214"/>
</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-04-17T03:18:07.250166" elapsed="0.000031"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:07.250421" elapsed="0.000032"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:18:07.245490" elapsed="0.005051"/>
</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="PASS" start="2026-04-17T03:18:05.463646" elapsed="1.787024"/>
</kw>
<msg time="2026-04-17T03:18:07.250744" 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="PASS" start="2026-04-17T03:18:05.463042" elapsed="1.787787"/>
</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="PASS" start="2026-04-17T03:18:05.462597" elapsed="1.788387"/>
</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-04-17T03:18:07.253713" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:07.253416" elapsed="0.000356"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:07.253383" elapsed="0.000413"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:07.254074" level="INFO">index=3
host=10.30.171.160
alias=None
port=22
timeout=5 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-04-17T03:18:07.254179" level="INFO">${current_ssh_connection} = index=3
host=10.30.171.160
alias=None
port=22
timeout=5 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:18:07.253952" elapsed="0.000255"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:07.254765" 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.171.160" 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-04-17T03:18:07.254360" elapsed="0.000452"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:07.255354" level="INFO">${conn_id} = 5</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-04-17T03:18:07.254970" elapsed="0.000425"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:18:07.256252" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:07.256330" 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-04-17T03:18:07.255970" elapsed="0.000384"/>
</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-04-17T03:18:07.256532" elapsed="0.000328"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:07.257752" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:07.650191" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:05 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:07.257433" elapsed="0.393040"/>
</kw>
<msg time="2026-04-17T03:18:07.650563" 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="PASS" start="2026-04-17T03:18:07.257046" elapsed="0.393621"/>
</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="PASS" start="2026-04-17T03:18:07.255618" elapsed="0.395158"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:07.651270" 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-04-17T03:18:07.684171" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:18:07.684413" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:18:07.684484" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:18:07.651022" elapsed="0.033498"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:07.684842" elapsed="0.000400"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:07.686112" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:07.685632" elapsed="0.000547"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:07.686686" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:07.686353" elapsed="0.000445"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:07.686302" elapsed="0.000548"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:18:07.687203" elapsed="0.000068"/>
</return>
<status status="PASS" start="2026-04-17T03:18:07.686967" elapsed="0.000378"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:07.686933" elapsed="0.000498"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:07.687511" elapsed="0.000034"/>
</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-04-17T03:18:07.695001" elapsed="0.000203"/>
</kw>
<msg time="2026-04-17T03:18:07.695269" 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-04-17T03:18:07.694040" elapsed="0.001319"/>
</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-04-17T03:18:07.695594" elapsed="0.000031"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:07.695815" elapsed="0.000028"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:18:07.688281" elapsed="0.007645"/>
</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="PASS" start="2026-04-17T03:18:07.252755" elapsed="0.443293"/>
</kw>
<msg time="2026-04-17T03:18:07.696118" 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="PASS" start="2026-04-17T03:18:07.251953" elapsed="0.444241"/>
</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="PASS" start="2026-04-17T03:18:07.251280" elapsed="0.445024"/>
</kw>
<arg>${tools_system}</arg>
<status status="PASS" start="2026-04-17T03:18:05.462267" elapsed="2.234133"/>
</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-04-17T03:18:07.698791" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:07.698444" elapsed="0.000420"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:07.698420" elapsed="0.000475"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:07.699275" level="INFO">index=3
host=10.30.171.160
alias=None
port=22
timeout=5 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-04-17T03:18:07.699440" level="INFO">${current_ssh_connection} = index=3
host=10.30.171.160
alias=None
port=22
timeout=5 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:18:07.699100" elapsed="0.000379"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:07.700172" level="INFO">Attempting to execute command "sudo ovs-vsctl del-manager" on remote system "10.30.171.160" 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-04-17T03:18:07.699691" elapsed="0.000532"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:07.700804" level="INFO">${conn_id} = 6</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-04-17T03:18:07.700402" elapsed="0.000428"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:18:07.701899" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:07.701980" 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-04-17T03:18:07.701606" elapsed="0.000398"/>
</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-04-17T03:18:07.702166" elapsed="0.000351"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:07.703367" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:08.032902" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:07 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:07.703050" elapsed="0.330009"/>
</kw>
<msg time="2026-04-17T03:18:08.033141" 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="PASS" start="2026-04-17T03:18:07.702690" elapsed="0.330546"/>
</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="PASS" start="2026-04-17T03:18:07.701136" elapsed="0.332233"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:08.033959" level="INFO">Executing command 'sudo ovs-vsctl del-manager'.</msg>
<msg time="2026-04-17T03:18:08.056486" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:08.056764" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:18:08.056870" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:18:08.033708" elapsed="0.023218"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:08.057343" elapsed="0.000631"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:08.059370" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:08.058539" elapsed="0.001000"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:08.060245" elapsed="0.000040"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:08.059735" elapsed="0.000630"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:08.059679" elapsed="0.000775"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:18:08.060866" elapsed="0.000069"/>
</return>
<status status="PASS" start="2026-04-17T03:18:08.060584" elapsed="0.000430"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:08.060548" elapsed="0.000524"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:08.061151" elapsed="0.000033"/>
</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-04-17T03:18:08.068911" elapsed="0.000325"/>
</kw>
<msg time="2026-04-17T03:18:08.069334" 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-04-17T03:18:08.067641" elapsed="0.001940"/>
</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-04-17T03:18:08.069968" elapsed="0.000052"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:08.070300" elapsed="0.000020"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:18:08.061996" elapsed="0.008399"/>
</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="PASS" start="2026-04-17T03:18:07.697876" elapsed="0.372625"/>
</kw>
<msg time="2026-04-17T03:18:08.070555" 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="PASS" start="2026-04-17T03:18:07.697236" elapsed="0.373376"/>
</kw>
<arg>${tools_system}</arg>
<arg>sudo ovs-vsctl del-manager</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:18:07.696691" elapsed="0.373997"/>
</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-04-17T03:18:08.072781" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:08.072489" elapsed="0.000409"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:08.072470" elapsed="0.000452"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:08.073201" level="INFO">index=3
host=10.30.171.160
alias=None
port=22
timeout=5 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-04-17T03:18:08.073311" level="INFO">${current_ssh_connection} = index=3
host=10.30.171.160
alias=None
port=22
timeout=5 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:18:08.073076" elapsed="0.000262"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:08.073917" level="INFO">Attempting to execute command "sudo /usr/share/openvswitch/scripts/ovs-ctl stop" on remote system "10.30.171.160" 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-04-17T03:18:08.073529" elapsed="0.000436"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:08.074525" level="INFO">${conn_id} = 7</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-04-17T03:18:08.074125" elapsed="0.000427"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:18:08.075443" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:08.075522" 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-04-17T03:18:08.075143" elapsed="0.000403"/>
</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-04-17T03:18:08.075710" elapsed="0.000327"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:08.077109" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:08.463047" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:07 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:08.076602" elapsed="0.386620"/>
</kw>
<msg time="2026-04-17T03:18:08.463320" 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="PASS" start="2026-04-17T03:18:08.076213" elapsed="0.387228"/>
</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="PASS" start="2026-04-17T03:18:08.074774" elapsed="0.388784"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:08.464072" level="INFO">Executing command 'sudo /usr/share/openvswitch/scripts/ovs-ctl stop'.</msg>
<msg time="2026-04-17T03:18:08.729917" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:08.730311" level="INFO">${stdout} =  * Exiting ovs-vswitchd (894)
 * Exiting ovsdb-server (851)</msg>
<msg time="2026-04-17T03:18:08.730485" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:18:08.463814" elapsed="0.266730"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:08.731090" elapsed="0.000666"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:08.733100" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:08.732339" elapsed="0.000867"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:08.733724" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:08.733420" elapsed="0.000433"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:08.733335" elapsed="0.001786"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:18:08.735567" elapsed="0.000069"/>
</return>
<status status="PASS" start="2026-04-17T03:18:08.735269" elapsed="0.000442"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:08.735230" elapsed="0.000536"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:08.735842" elapsed="0.000033"/>
</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-04-17T03:18:08.740684" elapsed="0.000150"/>
</kw>
<msg time="2026-04-17T03:18:08.740879" 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-04-17T03:18:08.740017" elapsed="0.000928"/>
</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-04-17T03:18:08.741127" elapsed="0.000027"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:08.741405" elapsed="0.000025"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:18:08.736710" elapsed="0.004789"/>
</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="PASS" start="2026-04-17T03:18:08.071989" elapsed="0.669603"/>
</kw>
<msg time="2026-04-17T03:18:08.741647" 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="PASS" start="2026-04-17T03:18:08.071410" elapsed="0.670297"/>
</kw>
<arg>${tools_system}</arg>
<arg>sudo /usr/share/openvswitch/scripts/ovs-ctl stop</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:18:08.070894" elapsed="0.670891"/>
</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-04-17T03:18:08.744264" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:08.743883" elapsed="0.000450"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:08.743857" elapsed="0.000501"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:08.744677" level="INFO">index=3
host=10.30.171.160
alias=None
port=22
timeout=5 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-04-17T03:18:08.744794" level="INFO">${current_ssh_connection} = index=3
host=10.30.171.160
alias=None
port=22
timeout=5 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:18:08.744544" elapsed="0.000278"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:08.745394" level="INFO">Attempting to execute command "sudo rm -rf /etc/openvswitch/conf.db" on remote system "10.30.171.160" 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-04-17T03:18:08.744976" elapsed="0.000469"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:08.746014" level="INFO">${conn_id} = 8</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-04-17T03:18:08.745604" elapsed="0.000436"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:18:08.747158" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:08.747264" 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-04-17T03:18:08.746641" elapsed="0.000650"/>
</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-04-17T03:18:08.747473" elapsed="0.000330"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:08.748785" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:09.085172" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:08 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:08.748423" elapsed="0.336926"/>
</kw>
<msg time="2026-04-17T03:18:09.085466" 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="PASS" start="2026-04-17T03:18:08.747974" elapsed="0.337593"/>
</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="PASS" start="2026-04-17T03:18:08.746274" elapsed="0.339431"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:09.086348" level="INFO">Executing command 'sudo rm -rf /etc/openvswitch/conf.db'.</msg>
<msg time="2026-04-17T03:18:09.109220" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:09.109521" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:18:09.109626" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:18:09.086008" elapsed="0.023671"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:09.110080" elapsed="0.000657"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.111905" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:09.111238" elapsed="0.000960"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:09.112745" elapsed="0.000040"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:09.112433" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.112344" elapsed="0.000570"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:18:09.113328" elapsed="0.000103"/>
</return>
<status status="PASS" start="2026-04-17T03:18:09.113039" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.113002" elapsed="0.000587"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:09.113735" elapsed="0.000040"/>
</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-04-17T03:18:09.121686" elapsed="0.000386"/>
</kw>
<msg time="2026-04-17T03:18:09.122239" 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-04-17T03:18:09.120305" elapsed="0.002126"/>
</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-04-17T03:18:09.122810" elapsed="0.000052"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.123186" elapsed="0.000048"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:18:09.114555" elapsed="0.008758"/>
</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="PASS" start="2026-04-17T03:18:08.743296" elapsed="0.380128"/>
</kw>
<msg time="2026-04-17T03:18:09.123480" 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="PASS" start="2026-04-17T03:18:08.742582" elapsed="0.380958"/>
</kw>
<arg>${tools_system}</arg>
<arg>sudo rm -rf /etc/openvswitch/conf.db</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:18:08.742038" elapsed="0.381581"/>
</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-04-17T03:18:09.125776" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.125462" elapsed="0.000375"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.125441" elapsed="0.000421"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:09.126170" level="INFO">index=3
host=10.30.171.160
alias=None
port=22
timeout=5 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-04-17T03:18:09.126279" level="INFO">${current_ssh_connection} = index=3
host=10.30.171.160
alias=None
port=22
timeout=5 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:18:09.126024" elapsed="0.000283"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.126878" level="INFO">Attempting to execute command "sudo /usr/share/openvswitch/scripts/ovs-ctl start" on remote system "10.30.171.160" 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-04-17T03:18:09.126482" elapsed="0.000444"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:09.127690" level="INFO">${conn_id} = 9</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-04-17T03:18:09.127087" elapsed="0.000632"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.128622" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:09.128704" 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-04-17T03:18:09.128313" elapsed="0.000416"/>
</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-04-17T03:18:09.128895" elapsed="0.000333"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:09.130133" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:09.461421" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:09 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:09.129796" elapsed="0.331890"/>
</kw>
<msg time="2026-04-17T03:18:09.461770" 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="PASS" start="2026-04-17T03:18:09.129419" elapsed="0.332445"/>
</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="PASS" start="2026-04-17T03:18:09.127949" elapsed="0.334026"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:09.462526" level="INFO">Executing command 'sudo /usr/share/openvswitch/scripts/ovs-ctl start'.</msg>
<msg time="2026-04-17T03:18:09.566809" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:09.567207" level="INFO">${stdout} =  * /etc/openvswitch/conf.db does not exist
 * Creating empty database /etc/openvswitch/conf.db
 * Starting ovsdb-server
 * system ID not configured, please use --system-id
 * Configuring Open vSwitch ...</msg>
<msg time="2026-04-17T03:18:09.567336" level="INFO">${stderr} = 2026-04-17T03:18:09Z|00001|dns_resolve|WARN|Failed to read etc/hosts: syntax error
2026-04-17T03:18:09Z|00001|dns_resolve|WARN|Failed to read etc/hosts: syntax error
2026-04-17T03:18:09Z|00001|dns_res...</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="PASS" start="2026-04-17T03:18:09.462221" elapsed="0.105217"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:09.568052" elapsed="0.000737"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.570006" level="INFO">2026-04-17T03:18:09Z|00001|dns_resolve|WARN|Failed to read etc/hosts: syntax error
2026-04-17T03:18:09Z|00001|dns_resolve|WARN|Failed to read etc/hosts: syntax error
2026-04-17T03:18:09Z|00001|dns_resolve|WARN|Failed to read etc/hosts: syntax error</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:09.569291" elapsed="0.000825"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:09.570779" elapsed="0.000044"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:09.570296" elapsed="0.000603"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.570246" elapsed="0.000705"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:18:09.571497" elapsed="0.000065"/>
</return>
<status status="PASS" start="2026-04-17T03:18:09.571069" elapsed="0.000551"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.571036" elapsed="0.000621"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:09.571709" elapsed="0.000022"/>
</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-04-17T03:18:09.577262" elapsed="0.000296"/>
</kw>
<msg time="2026-04-17T03:18:09.577638" 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-04-17T03:18:09.576309" elapsed="0.001433"/>
</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-04-17T03:18:09.578001" elapsed="0.000035"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.578252" elapsed="0.000030"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:18:09.572299" elapsed="0.006147"/>
</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="PASS" start="2026-04-17T03:18:09.124938" elapsed="0.453659"/>
</kw>
<msg time="2026-04-17T03:18:09.578680" 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="PASS" start="2026-04-17T03:18:09.124314" elapsed="0.454456"/>
</kw>
<arg>${tools_system}</arg>
<arg>sudo /usr/share/openvswitch/scripts/ovs-ctl start</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:18:09.123834" elapsed="0.455053"/>
</kw>
<doc>General Use Keyword attempting to sanitize test environment for OVSDB related
tests. Not every step will always be neccessary, but should not cause any problems for
any new ovsdb test suites.</doc>
<status status="PASS" start="2026-04-17T03:18:05.461938" elapsed="4.117034"/>
</kw>
<kw name="Cleanup Switch" owner="SwitchUtils">
<kw name="Iterate Switch Commands From List" owner="SwitchUtils">
<kw name="Configure Connection Index And Prompt Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${switch.connection_index}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:18:09.590127" elapsed="0.002019"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.587902" elapsed="0.004288"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.587876" elapsed="0.004342"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Set Client Configuration" owner="SSHLibrary">
<arg>prompt=${switch.mgmt_prompt}</arg>
<arg>timeout=5s</arg>
<doc>Update the `configuration` of the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:09.594318" elapsed="0.002383"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.592281" elapsed="0.004462"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.592260" elapsed="0.004508"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Switch Connection" owner="Telnet">
<arg>${switch.connection_index}</arg>
<doc>Switches between active connections using an index or an alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.599121" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.596827" elapsed="0.002435"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.596809" elapsed="0.002482"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Set Prompt" owner="Telnet">
<arg>${switch.mgmt_prompt}</arg>
<arg>True</arg>
<doc>Sets the prompt used by `Read Until Prompt` and `Login` in the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.601470" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.599358" elapsed="0.002179"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.599341" elapsed="0.002226"/>
</if>
<arg>${switch}</arg>
<doc>when using multiple switch connections (e.g. more than one switch device) this keyword will switch the current connection index and prompt so that the following
Read or Write actions happen on the correct device.</doc>
<status status="PASS" start="2026-04-17T03:18:09.587690" elapsed="0.013959"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.602544" level="INFO">/sbin/ifconfig -a | egrep '^s' | awk '{print "sudo ovs-vsctl del-br",$1}' | sh</msg>
<arg>${cmd}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:09.602139" elapsed="0.000463"/>
</kw>
<kw name="Read Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Read" owner="SSHLibrary">
<doc>Consumes and returns everything available on the server output.</doc>
<status status="PASS" start="2026-04-17T03:18:09.605671" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.603458" elapsed="0.002405"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.603435" elapsed="0.002454"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Read" owner="Telnet">
<doc>Reads everything that is currently available in the output.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.608357" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.605948" elapsed="0.002516"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.605930" elapsed="0.002565"/>
</if>
<arg>${switch}</arg>
<doc>Wraps the Read command so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:09.603176" elapsed="0.005373"/>
</kw>
<kw name="Execute Command Wrapper" owner="SwitchUtils">
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;ssh&quot;">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:09.611437" level="INFO">Executing command '/sbin/ifconfig -a | egrep '^s' | awk '{print "sudo ovs-vsctl del-br",$1}' | sh'.</msg>
<msg time="2026-04-17T03:18:09.624366" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:09.624667" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-04-17T03:18:09.611253" elapsed="0.013471"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.609089" elapsed="0.015728"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${output}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.625369" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.624883" elapsed="0.000653"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.609072" elapsed="0.016511"/>
</if>
<if>
<branch type="IF" condition="&quot;${switch.mgmt_protocol}&quot; == &quot;telnet&quot;">
<kw name="Execute Command" owner="Telnet">
<var>${output}</var>
<arg>${cmd}</arg>
<doc>Executes the given ``command`` and reads, logs, and returns everything until the prompt.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.630768" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.625720" elapsed="0.005187"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.632145" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${output}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.631360" elapsed="0.000845"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.630961" elapsed="0.001324"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.625680" elapsed="0.006651"/>
</if>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:18:09.632442" elapsed="0.000075"/>
</return>
<arg>${switch}</arg>
<arg>${cmd}</arg>
<doc>Wraps the Execute Command keyword so that depending on the switch.mgmt_protocol the right
library (Telnet or SSHLibrary) is used.</doc>
<status status="PASS" start="2026-04-17T03:18:09.608852" elapsed="0.023884"/>
</kw>
<var name="${cmd}">/sbin/ifconfig -a | egrep '^s' | awk '{print "sudo ovs-vsctl del-br",$1}' | sh</var>
<status status="PASS" start="2026-04-17T03:18:09.601920" elapsed="0.030900"/>
</iter>
<var>${cmd}</var>
<value>@{cmd_list}</value>
<status status="PASS" start="2026-04-17T03:18:09.601721" elapsed="0.031171"/>
</for>
<arg>${switch}</arg>
<arg>${switch.cleanup_cmds}</arg>
<doc>Each string in the @{cmd_list} argument is executed on the switch.connection_index.</doc>
<status status="PASS" start="2026-04-17T03:18:09.585169" elapsed="0.047843"/>
</kw>
<arg>${test_switch}</arg>
<doc>will execute and command strings stored in switch.cleanup_cmds</doc>
<status status="PASS" start="2026-04-17T03:18:09.579251" elapsed="0.053880"/>
</kw>
<kw name="Close All Connections" owner="SSHLibrary">
<doc>Closes all open connections.</doc>
<status status="PASS" start="2026-04-17T03:18:09.633499" elapsed="0.000528"/>
</kw>
<kw name="Close All Connections" owner="Telnet">
<doc>Closes all open connections and empties the connection cache.</doc>
<status status="PASS" start="2026-04-17T03:18:09.634371" elapsed="0.000338"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:05.461423" elapsed="4.173408"/>
</kw>
<doc>OF1.3 Suite for flow actions
- output ALL
- output CONTROLLER
- output TABLE
- output INPORT
- output LOCAL
- output NORMAL
- output FLOOD
- output ANY

NOTE: for OVS, INPORT does not appear to be supported</doc>
<status status="FAIL" start="2026-04-17T03:17:51.391812" elapsed="18.243081">Suite setup failed:
Keyword 'Validate Switch Output' failed after retrying for 10 seconds. The last error was: '9a5df812-eb49-4477-a37e-2d464c02791d
    Manager "ptcp:6644"
    Bridge s1
        Controller "tcp:10.30.170.85"
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"' does not match 'is_connected: true'</status>
</suite>
<status status="FAIL" start="2026-04-17T03:17:38.305455" elapsed="31.331651"/>
</suite>
<suite id="s1-s5" name="Reconciliation" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation">
<suite id="s1-s5-s1" name="010 Group Flows" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/010_Group_Flows.robot">
<kw name="Initialization Phase" type="SETUP">
<kw name="ClusterManagement_Setup" owner="ClusterManagement">
<kw name="Get Variable Value" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.739148" level="INFO">${already_done} = False</msg>
<var>${already_done}</var>
<arg>\${ClusterManagement__has_setup_run}</arg>
<arg>False</arg>
<doc>Returns variable value or ``default`` if the variable does not exist.</doc>
<status status="PASS" start="2026-04-17T03:18:09.735541" elapsed="0.003641"/>
</kw>
<if>
<branch type="IF" condition="${already_done}">
<return>
<status status="NOT RUN" start="2026-04-17T03:18:09.739428" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:09.739283" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.739258" elapsed="0.000322"/>
</if>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.740091" level="INFO">${ClusterManagement__has_setup_run} = True</msg>
<arg>\${ClusterManagement__has_setup_run}</arg>
<arg>True</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.739744" elapsed="0.000393"/>
</kw>
<kw name="Get Variable Value" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.740635" level="INFO">${cluster_size} = 1</msg>
<var>${cluster_size}</var>
<arg>\${NUM_ODL_SYSTEM}</arg>
<arg>1</arg>
<doc>Returns variable value or ``default`` if the variable does not exist.</doc>
<status status="PASS" start="2026-04-17T03:18:09.740301" elapsed="0.000361"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="Convert To Integer" owner="BuiltIn">
<arg>${cluster_size}</arg>
<doc>Converts the given item to an integer number.</doc>
<status status="PASS" start="2026-04-17T03:18:09.741174" elapsed="0.000314"/>
</kw>
<msg time="2026-04-17T03:18:09.741588" level="INFO">${status} = PASS</msg>
<msg time="2026-04-17T03:18:09.741635" level="INFO">${possibly_int_of_members} = 1</msg>
<var>${status}</var>
<var>${possibly_int_of_members}</var>
<arg>BuiltIn.Convert_To_Integer</arg>
<arg>${cluster_size}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:18:09.740830" elapsed="0.000829"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.742205" level="INFO">${int_of_members} = 1</msg>
<var>${int_of_members}</var>
<arg>'${status}' != 'PASS'</arg>
<arg>${1}</arg>
<arg>${possibly_int_of_members}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:09.741829" elapsed="0.000403"/>
</kw>
<kw name="ClusterManagement__Compute_Derived_Variables" owner="ClusterManagement">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.743505" level="INFO">@{member_index_list} = [ ]</msg>
<var>@{member_index_list}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:18:09.743208" elapsed="0.000325"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.743948" level="INFO">@{session_list} = [ ]</msg>
<var>@{session_list}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:18:09.743687" elapsed="0.000288"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.744518" level="INFO">&amp;{index_to_ip_mapping} = { }</msg>
<var>&amp;{index_to_ip_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.744175" elapsed="0.000371"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="ClusterManagement__Include_Member_Index" owner="ClusterManagement">
<kw name="Append To List" owner="Collections">
<arg>${member_index_list}</arg>
<arg>${index}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.747511" elapsed="0.000237"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.748235" level="INFO">${member_ip} = 10.30.170.85</msg>
<var>${member_ip}</var>
<arg>${ODL_SYSTEM_${index}_IP}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.747909" elapsed="0.000353"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${index_to_ip_mapping}</arg>
<arg>${index}</arg>
<arg>${member_ip}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.748430" elapsed="0.000313"/>
</kw>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.749555" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.749238" elapsed="0.000345"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:18:09.749629" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:18:09.749794" level="INFO">${session_alias} = ClusterManagement__session_1</msg>
<var>${session_alias}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:18:09.748941" elapsed="0.000878"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:09.750432" level="INFO">Creating Session using : alias=ClusterManagement__session_1, url=http://10.30.170.85:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c7b7e50&gt;, timeout=5, proxies=None, verify=False,                     debug=0 </msg>
<arg>${session_alias}</arg>
<arg>http://${member_ip}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<arg>timeout=${http_timeout}</arg>
<arg>max_retries=${http_retries}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-04-17T03:18:09.749978" elapsed="0.000647"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${session_list}</arg>
<arg>${session_alias}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.750790" elapsed="0.000196"/>
</kw>
<arg>${index}</arg>
<arg>${member_index_list}</arg>
<arg>${session_list}</arg>
<arg>${index_to_ip_mapping}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>http_retries=${http_retries}</arg>
<doc>Add a corresponding item based on index into the last three arguments.
Create the Http session whose alias is added to list.</doc>
<status status="PASS" start="2026-04-17T03:18:09.746934" elapsed="0.004112"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-17T03:18:09.746741" elapsed="0.004349"/>
</iter>
<var>${index}</var>
<value>1</value>
<value>${int_of_members+1}</value>
<status status="PASS" start="2026-04-17T03:18:09.744607" elapsed="0.006517"/>
</for>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.751837" level="INFO">${ClusterManagement__member_index_list} = [1]</msg>
<arg>\${ClusterManagement__member_index_list}</arg>
<arg>${member_index_list}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.751288" elapsed="0.000593"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.752434" level="INFO">${ClusterManagement__index_to_ip_mapping} = {1: '10.30.170.85'}</msg>
<arg>\${ClusterManagement__index_to_ip_mapping}</arg>
<arg>${index_to_ip_mapping}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.752045" elapsed="0.000433"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.752999" level="INFO">${ClusterManagement__session_list} = ['ClusterManagement__session_1']</msg>
<arg>\${ClusterManagement__session_list}</arg>
<arg>${session_list}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.752640" elapsed="0.000402"/>
</kw>
<arg>int_of_members=${int_of_members}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>http_retries=${http_retries}</arg>
<doc>Construct index list, session list and IP mapping, publish them as suite variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.742653" elapsed="0.010446"/>
</kw>
<doc>Detect repeated call, or detect number of members and initialize derived suite variables.
Http sessions are created with parameters to not waste time when ODL is no accepting connections properly.</doc>
<status status="PASS" start="2026-04-17T03:18:09.735189" elapsed="0.017965"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:09.753608" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d09c09abd0&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-04-17T03:18:09.753345" elapsed="0.000395"/>
</kw>
<kw name="Convert To Integer" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.754270" level="INFO">${switches} = 3</msg>
<var>${switches}</var>
<arg>${SWITCHES}</arg>
<doc>Converts the given item to an integer number.</doc>
<status status="PASS" start="2026-04-17T03:18:09.753957" elapsed="0.000339"/>
</kw>
<kw name="Convert To Integer" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.754829" level="INFO">${iter} = 100</msg>
<var>${iter}</var>
<arg>${ITER}</arg>
<doc>Converts the given item to an integer number.</doc>
<status status="PASS" start="2026-04-17T03:18:09.754504" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.755487" level="INFO">${all_groups} = 600</msg>
<var>${all_groups}</var>
<arg>${switches} * ${iter} * 2</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.755106" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.756023" level="INFO">${less_groups} = 594</msg>
<var>${less_groups}</var>
<arg>${all_groups} - ${switches} * 2</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.755671" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.758294" level="INFO">${all_flows} = 303</msg>
<var>${all_flows}</var>
<arg>${switches} * ${iter+1}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.756205" elapsed="0.002116"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.758864" level="INFO">${less_flows} = 300</msg>
<var>${less_flows}</var>
<arg>${all_flows} - ${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.758493" elapsed="0.000397"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.759357" level="INFO">${switches} = 3</msg>
<arg>${switches}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.759054" elapsed="0.000360"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.759868" level="INFO">${iter} = 100</msg>
<arg>${iter}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.759575" elapsed="0.000333"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.760360" level="INFO">${all_groups} = 600</msg>
<arg>${all_groups}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.760062" elapsed="0.000355"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.760874" level="INFO">${less_groups} = 594</msg>
<arg>${less_groups}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.760573" elapsed="0.000342"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.761368" level="INFO">${all_flows} = 303</msg>
<arg>${all_flows}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.761071" elapsed="0.000354"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.761879" level="INFO">${less_flows} = 300</msg>
<arg>${less_flows}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.761583" elapsed="0.000337"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.765977" level="INFO">${no_flows} = 3</msg>
<arg>${no_flows}</arg>
<arg>${SWITCHES}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-17T03:18:09.762077" elapsed="0.003951"/>
</kw>
<doc>Create controller session and set variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.734731" elapsed="0.031357"/>
</kw>
<test id="s1-s5-s1-t1" name="Add Group 1 In Every Switch" line="24">
<for flavor="IN RANGE">
<iter>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.769366" level="INFO">&amp;{mapping} = { NODE=openflow:1 }</msg>
<var>&amp;{mapping}</var>
<arg>NODE=openflow:${switch}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.768968" elapsed="0.000449"/>
</kw>
<kw name="Post_As_Json_Templated" owner="TemplatedRequests">
<kw name="Post_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.811254" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.810741" elapsed="0.000543"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:09.812990" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:09.811823" elapsed="0.001246">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:09.813169" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:09.811469" elapsed="0.001725"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.813768" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:09.813360" elapsed="0.000435"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:09.814101" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:09.814350" level="INFO">${template} = /rests/data/opendaylight-inventory:nodes/node=$NODE
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:09.813954" elapsed="0.000423"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.814829" level="INFO">/rests/data/opendaylight-inventory:nodes/node=$NODE
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:09.814575" elapsed="0.000302"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.815896" level="INFO">mapping: {'NODE': 'openflow:1'}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:09.815634" elapsed="0.000307"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.816534" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.816246" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.817270" level="INFO">${value} = openflow:1</msg>
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="PASS" start="2026-04-17T03:18:09.816921" elapsed="0.000375"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-04-17T03:18:09.818402" level="INFO">${encoded} = openflow%3A1</msg>
<var>${encoded}</var>
<arg>${value}</arg>
<arg>:</arg>
<arg>%3A</arg>
<doc>Replaces ``pattern`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.817848" elapsed="0.000582"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-04-17T03:18:09.818483" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:18:09.818659" level="INFO">${encoded_value} = openflow%3A1</msg>
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="PASS" start="2026-04-17T03:18:09.817507" elapsed="0.001177"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.818836" elapsed="0.000285"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-04-17T03:18:09.816787" elapsed="0.002375"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-04-17T03:18:09.816611" elapsed="0.002588"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:18:09.819242" elapsed="0.000027"/>
</return>
<msg time="2026-04-17T03:18:09.819414" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:18:09.815288" elapsed="0.004152"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.814957" elapsed="0.004515"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.819645" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.819498" elapsed="0.000204"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.814934" elapsed="0.004789"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.824018" level="INFO">${final_text} = /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.819864" elapsed="0.004184"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:09.824096" elapsed="0.000030"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:09.809995" elapsed="0.014229"/>
</kw>
<msg time="2026-04-17T03:18:09.824279" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:18:09.797728" elapsed="0.026599"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.836578" elapsed="0.000029"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.848301" elapsed="0.000028"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.860075" elapsed="0.000073"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.860324" elapsed="0.000022"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.860515" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.860890" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.860747" elapsed="0.000198"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:09.860731" elapsed="0.000239"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.861106" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.861269" elapsed="0.000023"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.861452" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:18:09.860699" elapsed="0.000807"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:18:09.860593" elapsed="0.000938"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.861674" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:09.861748" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:18:09.861866" level="INFO">${uri} = /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from 1, by one 100 times.
Template variable ${j} is calculated as ${i} incremented by offset 0 ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:18:09.793638" elapsed="0.068253"/>
</kw>
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:18:09.873005" elapsed="0.000393"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.886245" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/post_data.prolog.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.885858" elapsed="0.000416"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:09.887065" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/post_data.prolog.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:09.886812" elapsed="0.000331">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:09.887242" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:09.886451" elapsed="0.000816"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.887834" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/post_data.prolog.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:09.887445" elapsed="0.000417"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:09.888161" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:09.888329" level="INFO">${template} = {
  "flow-node-inventory:group": [
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:09.888018" elapsed="0.000336"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.888776" level="INFO">{
  "flow-node-inventory:group": [
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:09.888525" elapsed="0.000296"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:09.889238" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.888934" elapsed="0.000363"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.889781" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.889484" elapsed="0.000324"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.889323" elapsed="0.000520"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.888914" elapsed="0.000951"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.890472" level="INFO">${final_text} = {
  "flow-node-inventory:group": [</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.890009" elapsed="0.000490"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:09.890549" elapsed="0.000032"/>
</return>
<msg time="2026-04-17T03:18:09.890746" level="INFO">${prolog} = {
  "flow-node-inventory:group": [</msg>
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:09.885221" elapsed="0.005549"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.906524" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/post_data.epilog.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.906052" elapsed="0.000506"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:09.907375" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/post_data.epilog.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:09.907108" elapsed="0.000363">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:09.907568" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:09.906755" elapsed="0.000838"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.908143" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/post_data.epilog.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:09.907756" elapsed="0.000415"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:09.908499" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:09.908675" level="INFO">${template} =   ]
}
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:09.908335" elapsed="0.000365"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.909103" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:09.908855" elapsed="0.000292"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:09.909608" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.909230" elapsed="0.000437"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.910132" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.909836" elapsed="0.000322"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.909693" elapsed="0.000500"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.909205" elapsed="0.001009"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.910874" level="INFO">${final_text} =   ]
}</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.910362" elapsed="0.000539"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:09.910952" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:18:09.911113" level="INFO">${epilog} =   ]
}</msg>
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:09.905190" elapsed="0.005948"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.924104" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/data.item.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.923720" elapsed="0.000412"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:09.924884" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/data.item.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:09.924649" elapsed="0.000306">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1.vanadium/data.item.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:09.925049" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:09.924293" elapsed="0.000780"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.925636" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/data.item.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:09.925234" elapsed="0.000429"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:09.925961" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:09.926114" level="INFO">${template} =         {
          "group-id": ${i}000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
       ...</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:09.925821" elapsed="0.000320"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.926564" level="INFO">        {
          "group-id": ${i}000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-${i}",
          "group-type": "group-select"
        }
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:09.926301" elapsed="0.000313"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:09.927063" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.926752" elapsed="0.000369"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.927630" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:09.927317" elapsed="0.000339"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.927146" elapsed="0.000545"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.926730" elapsed="0.000982"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.928491" level="INFO">${final_text} =         {
          "group-id": ${i}000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
       ...</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.927856" elapsed="0.000663"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:09.928569" elapsed="0.000032"/>
</return>
<msg time="2026-04-17T03:18:09.928726" level="INFO">${item_template} =         {
          "group-id": ${i}000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
       ...</msg>
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:09.923135" elapsed="0.005618"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.929300" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:18:09.928913" elapsed="0.000413"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.929871" level="INFO">${separator} = ,
</msg>
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:09.929501" elapsed="0.000395"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:09.930561" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:09.930305" elapsed="0.000313"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.930289" elapsed="0.000477"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.931276" level="INFO">${j} = 1</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.930916" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.932118" level="INFO">${item} =         {
          "group-id": 1000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.931525" elapsed="0.000621"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.932299" elapsed="0.000220"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-04-17T03:18:09.930253" elapsed="0.002305"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.933945" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.933701" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.933685" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.934751" level="INFO">${j} = 2</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.934343" elapsed="0.000435"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.935542" level="INFO">${item} =         {
          "group-id": 2000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.934935" elapsed="0.000637"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.935729" elapsed="0.000188"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-04-17T03:18:09.933652" elapsed="0.002303"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.936372" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.936136" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.936121" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.937130" level="INFO">${j} = 3</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.936776" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.937905" level="INFO">${item} =         {
          "group-id": 3000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.937309" elapsed="0.000624"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.938087" elapsed="0.000186"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-04-17T03:18:09.936090" elapsed="0.002219"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.938759" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.938507" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.938492" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.939518" level="INFO">${j} = 4</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.939149" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.940277" level="INFO">${item} =         {
          "group-id": 4000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.939699" elapsed="0.000606"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.940474" elapsed="0.000185"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-04-17T03:18:09.938460" elapsed="0.002236"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.941111" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.940876" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.940862" elapsed="0.000493"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.941866" level="INFO">${j} = 5</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.941513" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.942669" level="INFO">${item} =         {
          "group-id": 5000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.942045" elapsed="0.000653"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.942853" elapsed="0.000184"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-04-17T03:18:09.940831" elapsed="0.002244"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.943509" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.943254" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.943239" elapsed="0.000551"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.944438" level="INFO">${j} = 6</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.943931" elapsed="0.000534"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.945206" level="INFO">${item} =         {
          "group-id": 6000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.944617" elapsed="0.000618"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.945403" elapsed="0.000185"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-04-17T03:18:09.943209" elapsed="0.002417"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.946041" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.945805" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.945790" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.946827" level="INFO">${j} = 7</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.946451" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.947601" level="INFO">${item} =         {
          "group-id": 7000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.947007" elapsed="0.000623"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.947782" elapsed="0.000182"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-04-17T03:18:09.945760" elapsed="0.002242"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.948430" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.948181" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.948166" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.949189" level="INFO">${j} = 8</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.948825" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.949967" level="INFO">${item} =         {
          "group-id": 8000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.949372" elapsed="0.000623"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.950147" elapsed="0.000182"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-04-17T03:18:09.948136" elapsed="0.002230"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.950951" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.950712" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.950697" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.951712" level="INFO">${j} = 9</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.951338" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.952497" level="INFO">${item} =         {
          "group-id": 9000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
          ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.951892" elapsed="0.000634"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.952679" elapsed="0.000185"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-04-17T03:18:09.950663" elapsed="0.002238"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.953316" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.953081" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.953066" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.954076" level="INFO">${j} = 10</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.953721" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.954871" level="INFO">${item} =         {
          "group-id": 10000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.954255" elapsed="0.000645"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.955054" elapsed="0.000183"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-04-17T03:18:09.953035" elapsed="0.002276"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.955747" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.955510" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.955496" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.956507" level="INFO">${j} = 11</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.956131" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.957268" level="INFO">${item} =         {
          "group-id": 11000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.956687" elapsed="0.000609"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.957466" elapsed="0.000186"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-04-17T03:18:09.955465" elapsed="0.002226"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.958142" elapsed="0.000214"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.957874" elapsed="0.000537"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.957858" elapsed="0.000578"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.959002" level="INFO">${j} = 12</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.958586" elapsed="0.000443"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.959955" level="INFO">${item} =         {
          "group-id": 12000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.959185" elapsed="0.000798"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.960138" elapsed="0.000185"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-04-17T03:18:09.957828" elapsed="0.002532"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.960792" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.960559" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.960544" elapsed="0.000494"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.961548" level="INFO">${j} = 13</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.961177" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.962318" level="INFO">${item} =         {
          "group-id": 13000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.961727" elapsed="0.000619"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.962515" elapsed="0.000196"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-04-17T03:18:09.960513" elapsed="0.002238"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.963166" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.962932" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.962917" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.963926" level="INFO">${j} = 14</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.963576" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.964735" level="INFO">${item} =         {
          "group-id": 14000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.964103" elapsed="0.000660"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.964914" elapsed="0.000182"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-04-17T03:18:09.962886" elapsed="0.002247"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.965584" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.965323" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.965307" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.966323" level="INFO">${j} = 15</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.965972" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.967131" level="INFO">${item} =         {
          "group-id": 15000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.966524" elapsed="0.000673"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.967352" elapsed="0.000202"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-04-17T03:18:09.965273" elapsed="0.002319"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.968139" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.967903" elapsed="0.000464"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.967889" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.968908" level="INFO">${j} = 16</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.968553" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.969689" level="INFO">${item} =         {
          "group-id": 16000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.969090" elapsed="0.000627"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.969872" elapsed="0.000182"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-04-17T03:18:09.967858" elapsed="0.002233"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.970527" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.970272" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.970257" elapsed="0.000532"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.971290" level="INFO">${j} = 17</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.970931" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.972060" level="INFO">${item} =         {
          "group-id": 17000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.971483" elapsed="0.000604"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.972239" elapsed="0.000198"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-04-17T03:18:09.970227" elapsed="0.002247"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.972888" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.972654" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.972640" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.973640" level="INFO">${j} = 18</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.973270" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.974558" level="INFO">${item} =         {
          "group-id": 18000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.973818" elapsed="0.000769"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.974778" elapsed="0.000185"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-04-17T03:18:09.972609" elapsed="0.002392"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.975440" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.975180" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.975166" elapsed="0.000521"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.976176" level="INFO">${j} = 19</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.975826" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.977095" level="INFO">${item} =         {
          "group-id": 19000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.976356" elapsed="0.000769"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.977278" elapsed="0.000202"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-04-17T03:18:09.975136" elapsed="0.002382"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.977936" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.977700" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.977685" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.978740" level="INFO">${j} = 20</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.978334" elapsed="0.000483"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.979637" level="INFO">${item} =         {
          "group-id": 20000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.978992" elapsed="0.000675"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.979823" elapsed="0.000187"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-04-17T03:18:09.977654" elapsed="0.002394"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.980485" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.980232" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.980217" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.981233" level="INFO">${j} = 21</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.980878" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.982021" level="INFO">${item} =         {
          "group-id": 21000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.981431" elapsed="0.000619"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.982205" elapsed="0.000215"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-04-17T03:18:09.980186" elapsed="0.002277"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.982952" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.982650" elapsed="0.000530"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.982635" elapsed="0.000570"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.983731" level="INFO">${j} = 22</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.983348" elapsed="0.000410"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.984527" level="INFO">${item} =         {
          "group-id": 22000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.983913" elapsed="0.000643"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.984710" elapsed="0.000185"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-04-17T03:18:09.982604" elapsed="0.002329"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.985505" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.985251" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.985236" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.986257" level="INFO">${j} = 23</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.985896" elapsed="0.000388"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.987092" level="INFO">${item} =         {
          "group-id": 23000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.986452" elapsed="0.000674"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.987291" elapsed="0.000227"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-04-17T03:18:09.985205" elapsed="0.002357"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.987995" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.987757" elapsed="0.000464"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.987742" elapsed="0.000503"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.988767" level="INFO">${j} = 24</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.988404" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.989560" level="INFO">${item} =         {
          "group-id": 24000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.988949" elapsed="0.000639"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.989743" elapsed="0.000185"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-04-17T03:18:09.987707" elapsed="0.002258"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.990446" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.990148" elapsed="0.000555"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.990134" elapsed="0.000595"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.991245" level="INFO">${j} = 25</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.990877" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.992036" level="INFO">${item} =         {
          "group-id": 25000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.991446" elapsed="0.000619"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.992219" elapsed="0.000209"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-04-17T03:18:09.990103" elapsed="0.002364"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.992892" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.992652" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.992637" elapsed="0.000505"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.993677" level="INFO">${j} = 26</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.993291" elapsed="0.000412"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.994462" level="INFO">${item} =         {
          "group-id": 26000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.993858" elapsed="0.000632"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.994645" elapsed="0.000206"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-04-17T03:18:09.992606" elapsed="0.002284"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.995317" elapsed="0.000204"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.995078" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.995057" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.996084" level="INFO">${j} = 27</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.995726" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.996874" level="INFO">${item} =         {
          "group-id": 27000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.996264" elapsed="0.000639"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.997057" elapsed="0.000185"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-04-17T03:18:09.995026" elapsed="0.002252"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.997735" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.997496" elapsed="0.000464"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.997481" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.998516" level="INFO">${j} = 28</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.998137" elapsed="0.000406"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:09.999344" level="INFO">${item} =         {
          "group-id": 28000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:09.998742" elapsed="0.000631"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:09.999548" elapsed="0.000186"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-04-17T03:18:09.997449" elapsed="0.002322"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.000197" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:09.999960" elapsed="0.000482"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:09.999944" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.000973" level="INFO">${j} = 29</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.000616" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.001768" level="INFO">${item} =         {
          "group-id": 29000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.001153" elapsed="0.000644"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.001985" elapsed="0.000187"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-04-17T03:18:09.999908" elapsed="0.002301"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.002805" elapsed="0.000197"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.002543" elapsed="0.000498"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.002528" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.003593" level="INFO">${j} = 30</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.003210" elapsed="0.000409"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.004365" level="INFO">${item} =         {
          "group-id": 30000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.003776" elapsed="0.000634"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.004568" elapsed="0.000185"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-04-17T03:18:10.002495" elapsed="0.002295"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.005209" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.004971" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.004957" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.005976" level="INFO">${j} = 31</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.005616" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.006807" level="INFO">${item} =         {
          "group-id": 31000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.006157" elapsed="0.000680"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.007003" elapsed="0.000188"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-04-17T03:18:10.004925" elapsed="0.002304"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.007668" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.007428" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.007412" elapsed="0.000505"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.008461" level="INFO">${j} = 32</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.008072" elapsed="0.000416"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.009236" level="INFO">${item} =         {
          "group-id": 32000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.008643" elapsed="0.000623"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.009449" elapsed="0.000189"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-04-17T03:18:10.007365" elapsed="0.002311"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.010097" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.009857" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.009842" elapsed="0.000504"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.010890" level="INFO">${j} = 33</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.010503" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.011681" level="INFO">${item} =         {
          "group-id": 33000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.011071" elapsed="0.000638"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.011864" elapsed="0.000187"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-04-17T03:18:10.009811" elapsed="0.002278"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.012536" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.012270" elapsed="0.000492"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.012255" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.013293" level="INFO">${j} = 34</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.012931" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.014130" level="INFO">${item} =         {
          "group-id": 34000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.013524" elapsed="0.000634"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.014315" elapsed="0.000209"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-04-17T03:18:10.012224" elapsed="0.002345"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.015053" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.014803" elapsed="0.000482"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.014786" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.015830" level="INFO">${j} = 35</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.015470" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.016623" level="INFO">${item} =         {
          "group-id": 35000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.016011" elapsed="0.000640"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.016806" elapsed="0.000185"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-04-17T03:18:10.014751" elapsed="0.002278"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.017468" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.017210" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.017195" elapsed="0.000523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.018215" level="INFO">${j} = 36</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.017860" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.019037" level="INFO">${item} =         {
          "group-id": 36000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.018410" elapsed="0.000656"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.019228" elapsed="0.000216"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-04-17T03:18:10.017165" elapsed="0.002318"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.020039" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.019795" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.019779" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.020812" level="INFO">${j} = 37</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.020448" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.021597" level="INFO">${item} =         {
          "group-id": 37000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.020994" elapsed="0.000632"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.021780" elapsed="0.000185"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-04-17T03:18:10.019744" elapsed="0.002258"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.022441" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.022182" elapsed="0.000482"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.022167" elapsed="0.000565"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.023263" level="INFO">${j} = 38</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.022900" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.024104" level="INFO">${item} =         {
          "group-id": 38000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.023487" elapsed="0.000648"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.024296" elapsed="0.000216"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-04-17T03:18:10.022137" elapsed="0.002415"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.024974" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.024736" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.024721" elapsed="0.000545"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.025795" level="INFO">${j} = 39</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.025427" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.026583" level="INFO">${item} =         {
          "group-id": 39000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.025976" elapsed="0.000636"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.026788" elapsed="0.000190"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-04-17T03:18:10.024689" elapsed="0.002327"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.027457" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.027200" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.027185" elapsed="0.000526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.028223" level="INFO">${j} = 40</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.027855" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.029025" level="INFO">${item} =         {
          "group-id": 40000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.028425" elapsed="0.000628"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.029207" elapsed="0.000200"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-04-17T03:18:10.027154" elapsed="0.002291"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.029871" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.029632" elapsed="0.000468"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.029618" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.030652" level="INFO">${j} = 41</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.030266" elapsed="0.000412"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.031502" level="INFO">${item} =         {
          "group-id": 41000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.030881" elapsed="0.000649"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.031684" elapsed="0.000191"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-04-17T03:18:10.029587" elapsed="0.002325"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.032333" elapsed="0.000205"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.032094" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.032080" elapsed="0.000521"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.033114" level="INFO">${j} = 42</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.032750" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.033908" level="INFO">${item} =         {
          "group-id": 42000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.033294" elapsed="0.000643"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.034089" elapsed="0.000184"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-04-17T03:18:10.032049" elapsed="0.002262"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.034776" elapsed="0.000215"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.034509" elapsed="0.000526"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.034494" elapsed="0.000570"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.035687" level="INFO">${j} = 43</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.035241" elapsed="0.000477"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.036709" level="INFO">${item} =         {
          "group-id": 43000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.035906" elapsed="0.000843"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.036928" elapsed="0.000190"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-04-17T03:18:10.034463" elapsed="0.002777"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.037875" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.037630" elapsed="0.000492"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.037614" elapsed="0.000539"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.038844" level="INFO">${j} = 44</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.038366" elapsed="0.000507"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.039883" level="INFO">${item} =         {
          "group-id": 44000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.039098" elapsed="0.000819"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.040099" elapsed="0.000210"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-04-17T03:18:10.037577" elapsed="0.002775"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.040803" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.040562" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.040547" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.041573" level="INFO">${j} = 45</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.041195" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.042339" level="INFO">${item} =         {
          "group-id": 45000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.041754" elapsed="0.000613"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.042538" elapsed="0.000201"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-04-17T03:18:10.040515" elapsed="0.002263"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.043197" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.042960" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.042945" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.043968" level="INFO">${j} = 46</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.043604" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.044891" level="INFO">${item} =         {
          "group-id": 46000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.044280" elapsed="0.000639"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.045071" elapsed="0.000207"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-04-17T03:18:10.042914" elapsed="0.002412"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.045773" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.045532" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.045517" elapsed="0.000504"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.046566" level="INFO">${j} = 47</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.046167" elapsed="0.000426"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.047419" level="INFO">${item} =         {
          "group-id": 47000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.046809" elapsed="0.000644"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.047633" elapsed="0.000190"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-04-17T03:18:10.045485" elapsed="0.002375"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.048282" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.048044" elapsed="0.000479"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.048029" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.049092" level="INFO">${j} = 48</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.048728" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.049904" level="INFO">${item} =         {
          "group-id": 48000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.049271" elapsed="0.000699"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.050137" elapsed="0.000193"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-04-17T03:18:10.047998" elapsed="0.002370"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.050868" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.050588" elapsed="0.000513"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.050573" elapsed="0.000552"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.051667" level="INFO">${j} = 49</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.051267" elapsed="0.000428"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.052630" level="INFO">${item} =         {
          "group-id": 49000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.051853" elapsed="0.000806"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.052816" elapsed="0.000203"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-04-17T03:18:10.050540" elapsed="0.002519"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.053503" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.053243" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.053228" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.054281" level="INFO">${j} = 50</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.053900" elapsed="0.000412"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.055105" level="INFO">${item} =         {
          "group-id": 50000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.054485" elapsed="0.000648"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.055313" elapsed="0.000209"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-04-17T03:18:10.053197" elapsed="0.002363"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.056103" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.055863" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.055848" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.056902" level="INFO">${j} = 51</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.056539" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.057713" level="INFO">${item} =         {
          "group-id": 51000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.057084" elapsed="0.000658"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.057898" elapsed="0.000186"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-04-17T03:18:10.055816" elapsed="0.002306"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.058581" elapsed="0.000234"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.058303" elapsed="0.000551"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.058288" elapsed="0.000591"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.059411" level="INFO">${j} = 52</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.059031" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.060218" level="INFO">${item} =         {
          "group-id": 52000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.059622" elapsed="0.000625"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.060430" elapsed="0.000186"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-04-17T03:18:10.058257" elapsed="0.002401"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.061101" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.060860" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.060845" elapsed="0.000504"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.061898" level="INFO">${j} = 53</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.061514" elapsed="0.000448"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.062758" level="INFO">${item} =         {
          "group-id": 53000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.062124" elapsed="0.000664"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.062966" elapsed="0.000193"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-04-17T03:18:10.060813" elapsed="0.002384"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.063651" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.063404" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.063367" elapsed="0.000533"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.064454" level="INFO">${j} = 54</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.064064" elapsed="0.000417"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.065268" level="INFO">${item} =         {
          "group-id": 54000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.064639" elapsed="0.000659"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.065474" elapsed="0.000189"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-04-17T03:18:10.063335" elapsed="0.002365"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.066121" elapsed="0.000211"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.065883" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.065868" elapsed="0.000546"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.066963" level="INFO">${j} = 55</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.066560" elapsed="0.000430"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.067782" level="INFO">${item} =         {
          "group-id": 55000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.067145" elapsed="0.000666"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.067967" elapsed="0.000185"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-04-17T03:18:10.065837" elapsed="0.002353"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.068712" elapsed="0.000198"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.068411" elapsed="0.000540"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.068374" elapsed="0.000602"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.069536" level="INFO">${j} = 56</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.069123" elapsed="0.000442"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.070374" level="INFO">${item} =         {
          "group-id": 56000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.069725" elapsed="0.000696"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.070593" elapsed="0.000223"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-04-17T03:18:10.068327" elapsed="0.002530"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.071284" elapsed="0.000203"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.071040" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.071025" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.072097" level="INFO">${j} = 57</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.071710" elapsed="0.000413"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.072918" level="INFO">${item} =         {
          "group-id": 57000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.072277" elapsed="0.000669"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.073102" elapsed="0.000185"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-04-17T03:18:10.070994" elapsed="0.002332"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.073936" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.073638" elapsed="0.000536"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.073623" elapsed="0.000576"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.074761" level="INFO">${j} = 58</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.074342" elapsed="0.000448"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.075581" level="INFO">${item} =         {
          "group-id": 58000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.074947" elapsed="0.000662"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.075766" elapsed="0.000186"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-04-17T03:18:10.073592" elapsed="0.002399"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.076452" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.076195" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.076179" elapsed="0.000526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.077222" level="INFO">${j} = 59</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.076847" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.078018" level="INFO">${item} =         {
          "group-id": 59000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.077429" elapsed="0.000617"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.078200" elapsed="0.000225"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-04-17T03:18:10.076146" elapsed="0.002319"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.078947" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.078650" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.078635" elapsed="0.000562"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.079736" level="INFO">${j} = 60</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.079338" elapsed="0.000424"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.080535" level="INFO">${item} =         {
          "group-id": 60000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.079918" elapsed="0.000646"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.080720" elapsed="0.000184"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-04-17T03:18:10.078604" elapsed="0.002337"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.081362" elapsed="0.000214"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.081123" elapsed="0.000501"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.081109" elapsed="0.000540"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.082157" level="INFO">${j} = 61</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.081795" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.083036" level="INFO">${item} =         {
          "group-id": 61000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.082344" elapsed="0.000720"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.083221" elapsed="0.000208"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-04-17T03:18:10.081077" elapsed="0.002391"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.083916" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.083652" elapsed="0.000495"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.083636" elapsed="0.000536"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.084706" level="INFO">${j} = 62</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.084320" elapsed="0.000413"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.085533" level="INFO">${item} =         {
          "group-id": 62000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.084902" elapsed="0.000659"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.085752" elapsed="0.000187"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-04-17T03:18:10.083606" elapsed="0.002380"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.086447" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.086190" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.086175" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.087263" level="INFO">${j} = 63</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.086867" elapsed="0.000423"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.088137" level="INFO">${item} =         {
          "group-id": 63000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.087463" elapsed="0.000716"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.088369" elapsed="0.000208"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-04-17T03:18:10.086142" elapsed="0.002474"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.089037" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.088796" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.088782" elapsed="0.000519"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.089883" level="INFO">${j} = 64</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.089507" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.090675" level="INFO">${item} =         {
          "group-id": 64000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.090067" elapsed="0.000637"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.090892" elapsed="0.000192"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-04-17T03:18:10.088751" elapsed="0.002371"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.091688" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.091446" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.091431" elapsed="0.000504"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.092453" level="INFO">${j} = 65</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.092077" elapsed="0.000403"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.093220" level="INFO">${item} =         {
          "group-id": 65000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.092635" elapsed="0.000614"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.093420" elapsed="0.000188"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-04-17T03:18:10.091397" elapsed="0.002249"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.094063" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.093826" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.093811" elapsed="0.000502"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.094863" level="INFO">${j} = 66</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.094476" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.095775" level="INFO">${item} =         {
          "group-id": 66000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.095045" elapsed="0.000759"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.095959" elapsed="0.000186"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-04-17T03:18:10.093780" elapsed="0.002403"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.096629" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.096363" elapsed="0.000494"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.096348" elapsed="0.000534"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.097379" level="INFO">${j} = 67</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.097023" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.098210" level="INFO">${item} =         {
          "group-id": 67000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.097616" elapsed="0.000623"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.098414" elapsed="0.000185"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-04-17T03:18:10.096318" elapsed="0.002319"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.099134" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.098880" elapsed="0.000492"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.098863" elapsed="0.000550"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.099922" level="INFO">${j} = 68</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.099559" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.100708" level="INFO">${item} =         {
          "group-id": 68000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.100105" elapsed="0.000632"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.100892" elapsed="0.000185"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-04-17T03:18:10.098829" elapsed="0.002285"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.101554" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.101296" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.101280" elapsed="0.000526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.102354" level="INFO">${j} = 69</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.101948" elapsed="0.000458"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.103418" level="INFO">${item} =         {
          "group-id": 69000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.102604" elapsed="0.000852"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.103656" elapsed="0.000232"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-04-17T03:18:10.101250" elapsed="0.002685"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.104487" elapsed="0.000234"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.104165" elapsed="0.000602"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.104146" elapsed="0.000653"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.105455" level="INFO">${j} = 70</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.104992" elapsed="0.000497"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.106462" level="INFO">${item} =         {
          "group-id": 70000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.105690" elapsed="0.000807"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.106696" elapsed="0.000277"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-04-17T03:18:10.104105" elapsed="0.002914"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.107484" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.107216" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.107202" elapsed="0.000553"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.108276" level="INFO">${j} = 71</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.107903" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.109062" level="INFO">${item} =         {
          "group-id": 71000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.108476" elapsed="0.000615"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.109243" elapsed="0.000200"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-04-17T03:18:10.107169" elapsed="0.002311"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.110122" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.109860" elapsed="0.000566"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.109844" elapsed="0.000612"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.111036" level="INFO">${j} = 72</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.110642" elapsed="0.000420"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.111823" level="INFO">${item} =         {
          "group-id": 72000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.111218" elapsed="0.000635"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.112008" elapsed="0.000186"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-04-17T03:18:10.109778" elapsed="0.002461"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.112691" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.112450" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.112434" elapsed="0.000507"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.113466" level="INFO">${j} = 73</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.113084" elapsed="0.000409"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.114276" level="INFO">${item} =         {
          "group-id": 73000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.113649" elapsed="0.000656"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.114479" elapsed="0.000188"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-04-17T03:18:10.112401" elapsed="0.002303"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.115154" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.114915" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.114900" elapsed="0.000518"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.115921" level="INFO">${j} = 74</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.115561" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.116711" level="INFO">${item} =         {
          "group-id": 74000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.116102" elapsed="0.000637"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.116893" elapsed="0.000183"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-04-17T03:18:10.114868" elapsed="0.002245"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.117587" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.117293" elapsed="0.000532"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.117278" elapsed="0.000571"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.118352" level="INFO">${j} = 75</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.117998" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.119171" level="INFO">${item} =         {
          "group-id": 75000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.118547" elapsed="0.000653"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.119353" elapsed="0.000207"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-04-17T03:18:10.117248" elapsed="0.002350"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.120023" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.119784" elapsed="0.000464"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.119769" elapsed="0.000503"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.120796" level="INFO">${j} = 76</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.120435" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.121592" level="INFO">${item} =         {
          "group-id": 76000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.120982" elapsed="0.000638"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.121775" elapsed="0.000184"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-04-17T03:18:10.119732" elapsed="0.002298"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.122468" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.122215" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.122200" elapsed="0.000519"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.123287" level="INFO">${j} = 77</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.122921" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.124077" level="INFO">${item} =         {
          "group-id": 77000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.123491" elapsed="0.000614"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.124261" elapsed="0.000201"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-04-17T03:18:10.122169" elapsed="0.002332"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.125049" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.124751" elapsed="0.000526"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.124703" elapsed="0.000597"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.125863" level="INFO">${j} = 78</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.125461" elapsed="0.000428"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.126662" level="INFO">${item} =         {
          "group-id": 78000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.126046" elapsed="0.000644"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.126866" elapsed="0.000217"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-04-17T03:18:10.124667" elapsed="0.002456"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.127678" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.127434" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.127418" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.128448" level="INFO">${j} = 79</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.128071" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.129349" level="INFO">${item} =         {
          "group-id": 79000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.128630" elapsed="0.000778"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.129613" elapsed="0.000220"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-04-17T03:18:10.127370" elapsed="0.002502"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.130342" elapsed="0.000208"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.130077" elapsed="0.000512"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.130057" elapsed="0.000557"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.131207" level="INFO">${j} = 80</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.130815" elapsed="0.000420"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.131998" level="INFO">${item} =         {
          "group-id": 80000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.131411" elapsed="0.000615"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.132182" elapsed="0.000185"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-04-17T03:18:10.130022" elapsed="0.002398"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.132845" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.132608" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.132588" elapsed="0.000503"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.133602" level="INFO">${j} = 81</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.133233" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.134372" level="INFO">${item} =         {
          "group-id": 81000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.133781" elapsed="0.000666"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.134606" elapsed="0.000209"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-04-17T03:18:10.132558" elapsed="0.002298"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.135286" elapsed="0.000208"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.135049" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.135034" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.136053" level="INFO">${j} = 82</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.135698" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.136837" level="INFO">${item} =         {
          "group-id": 82000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.136232" elapsed="0.000633"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.137019" elapsed="0.000184"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-04-17T03:18:10.135004" elapsed="0.002235"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.137672" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.137437" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.137421" elapsed="0.000498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.138432" level="INFO">${j} = 83</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.138064" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.139248" level="INFO">${item} =         {
          "group-id": 83000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.138612" elapsed="0.000664"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.139512" elapsed="0.000263"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-04-17T03:18:10.137374" elapsed="0.002451"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.140428" elapsed="0.000258"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.140081" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.140053" elapsed="0.000719"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.141496" level="INFO">${j} = 84</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.140973" elapsed="0.000560"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.142612" level="INFO">${item} =         {
          "group-id": 84000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.141742" elapsed="0.000910"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.142908" elapsed="0.000262"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-04-17T03:18:10.140011" elapsed="0.003212"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.143827" elapsed="0.000255"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.143497" elapsed="0.000638"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.143476" elapsed="0.000692"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.144896" level="INFO">${j} = 85</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.144372" elapsed="0.000561"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.145995" level="INFO">${item} =         {
          "group-id": 85000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.145143" elapsed="0.000892"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.146246" elapsed="0.000278"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-04-17T03:18:10.143431" elapsed="0.003145"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.147948" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.147697" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.147678" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.148715" level="INFO">${j} = 86</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.148338" elapsed="0.000434"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.149519" level="INFO">${item} =         {
          "group-id": 86000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.148927" elapsed="0.000620"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.149699" elapsed="0.000181"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-04-17T03:18:10.147638" elapsed="0.002279"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.150329" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.150094" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.150080" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.151112" level="INFO">${j} = 87</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.150729" elapsed="0.000410"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.151938" level="INFO">${item} =         {
          "group-id": 87000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.151308" elapsed="0.000659"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.152237" elapsed="0.000219"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-04-17T03:18:10.150050" elapsed="0.002444"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.152908" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.152673" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.152657" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.153665" level="INFO">${j} = 88</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.153294" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.154445" level="INFO">${item} =         {
          "group-id": 88000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.153845" elapsed="0.000629"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.154629" elapsed="0.000207"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-04-17T03:18:10.152628" elapsed="0.002249"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.155304" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.155069" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.155054" elapsed="0.000510"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.156054" level="INFO">${j} = 89</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.155704" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.156822" level="INFO">${item} =         {
          "group-id": 89000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.156232" elapsed="0.000617"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.157001" elapsed="0.000181"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-04-17T03:18:10.155024" elapsed="0.002194"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.157647" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.157412" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.157381" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.158429" level="INFO">${j} = 90</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.158036" elapsed="0.000427"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.159275" level="INFO">${item} =         {
          "group-id": 90000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.158618" elapsed="0.000685"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.159475" elapsed="0.000185"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-04-17T03:18:10.157351" elapsed="0.002346"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.160143" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.159876" elapsed="0.000488"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.159861" elapsed="0.000542"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.160948" level="INFO">${j} = 91</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.160546" elapsed="0.000429"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.161846" level="INFO">${item} =         {
          "group-id": 91000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.161246" elapsed="0.000628"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.162033" elapsed="0.000191"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-04-17T03:18:10.159831" elapsed="0.002432"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.162726" elapsed="0.000230"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.162467" elapsed="0.000531"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.162451" elapsed="0.000574"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.163548" level="INFO">${j} = 92</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.163170" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.164310" level="INFO">${item} =         {
          "group-id": 92000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.163728" elapsed="0.000611"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.164509" elapsed="0.000183"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-04-17T03:18:10.162419" elapsed="0.002310"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.165261" elapsed="0.000200"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.165025" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.165010" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.166021" level="INFO">${j} = 93</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.165667" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.166828" level="INFO">${item} =         {
          "group-id": 93000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.166201" elapsed="0.000657"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.167012" elapsed="0.000184"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-04-17T03:18:10.164979" elapsed="0.002254"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.167667" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.167430" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.167414" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.168419" level="INFO">${j} = 94</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.168052" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.169174" level="INFO">${item} =         {
          "group-id": 94000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.168600" elapsed="0.000602"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.169354" elapsed="0.000199"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-04-17T03:18:10.167368" elapsed="0.002223"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.170005" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.169770" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.169755" elapsed="0.000494"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.170759" level="INFO">${j} = 95</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.170404" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.171567" level="INFO">${item} =         {
          "group-id": 95000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.170966" elapsed="0.000629"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.171783" elapsed="0.000186"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-04-17T03:18:10.169725" elapsed="0.002281"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.172452" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.172185" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.172171" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.173193" level="INFO">${j} = 96</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.172840" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.173981" level="INFO">${item} =         {
          "group-id": 96000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.173373" elapsed="0.000636"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.174165" elapsed="0.000188"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-04-17T03:18:10.172141" elapsed="0.002264"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.174852" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.174588" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.174573" elapsed="0.000529"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.175616" level="INFO">${j} = 97</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.175245" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.176373" level="INFO">${item} =         {
          "group-id": 97000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.175797" elapsed="0.000620"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.176578" elapsed="0.000288"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-04-17T03:18:10.174543" elapsed="0.002368"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.177374" elapsed="0.000212"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.177113" elapsed="0.000510"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.177098" elapsed="0.000555"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.178199" level="INFO">${j} = 98</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.177796" elapsed="0.000430"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.179058" level="INFO">${item} =         {
          "group-id": 98000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.178427" elapsed="0.000663"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.179249" elapsed="0.000224"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-04-17T03:18:10.177068" elapsed="0.002444"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.179939" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.179698" elapsed="0.000464"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.179678" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.180745" level="INFO">${j} = 99</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.180374" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.181529" level="INFO">${item} =         {
          "group-id": 99000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
         ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.180925" elapsed="0.000632"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.181708" elapsed="0.000182"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-04-17T03:18:10.179647" elapsed="0.002280"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.182489" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.182225" elapsed="0.000495"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.182210" elapsed="0.000535"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.183333" level="INFO">${j} = 100</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.182951" elapsed="0.000409"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.184155" level="INFO">${item} =         {
          "group-id": 100000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
        ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.183566" elapsed="0.000617"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.184338" elapsed="0.000201"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-04-17T03:18:10.182179" elapsed="0.002398"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-04-17T03:18:09.929960" elapsed="0.254649"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.185886" level="INFO">${final_text} = {
  "flow-node-inventory:group": [
        {
          "group-id": 1000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
   ...</msg>
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="PASS" start="2026-04-17T03:18:10.184766" elapsed="0.001148"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:10.185977" elapsed="0.000044"/>
</return>
<msg time="2026-04-17T03:18:10.186186" level="INFO">${data} = {
  "flow-node-inventory:group": [
        {
          "group-id": 1000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
   ...</msg>
<var>${data}</var>
<arg>folder=${folder}</arg>
<arg>name_prefix=post_</arg>
<arg>base_name=${base_name}</arg>
<arg>extension=${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>endline=${endline}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from 1, by one 100 times.
Template variable ${j} is calculated as ${i} incremented by offset 0 ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:18:09.872107" elapsed="0.314106"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.187653" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.187330" elapsed="0.000398">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-1/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:10.187822" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:10.186988" elapsed="0.000859"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.188162" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.187918" elapsed="0.000302"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.188749" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:10.188454" elapsed="0.000320"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.188244" elapsed="0.000566"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.187899" elapsed="0.000932"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.191243" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:10.189005" elapsed="0.002265"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:18:10.191322" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:18:10.191490" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-1/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:18:10.186610" elapsed="0.004905"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.193083" level="INFO">/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.192825" elapsed="0.000302"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.193542" level="INFO">{
  "flow-node-inventory:group": [
        {
          "group-id": 1000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-1",
          "group-type": "group-select"
        },
        {
          "group-id": 2000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-2",
          "group-type": "group-select"
        },
        {
          "group-id": 3000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-3",
          "group-type": "group-select"
        },
        {
          "group-id": 4000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-4",
          "group-type": "group-select"
        },
        {
          "group-id": 5000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-5",
          "group-type": "group-select"
        },
        {
          "group-id": 6000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-6",
          "group-type": "group-select"
        },
        {
          "group-id": 7000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-7",
          "group-type": "group-select"
        },
        {
          "group-id": 8000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-8",
          "group-type": "group-select"
        },
        {
          "group-id": 9000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-9",
          "group-type": "group-select"
        },
        {
          "group-id": 10000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-10",
          "group-type": "group-select"
        },
        {
          "group-id": 11000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-11",
          "group-type": "group-select"
        },
        {
          "group-id": 12000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-12",
          "group-type": "group-select"
        },
        {
          "group-id": 13000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-13",
          "group-type": "group-select"
        },
        {
          "group-id": 14000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-14",
          "group-type": "group-select"
        },
        {
          "group-id": 15000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-15",
          "group-type": "group-select"
        },
        {
          "group-id": 16000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-16",
          "group-type": "group-select"
        },
        {
          "group-id": 17000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-17",
          "group-type": "group-select"
        },
        {
          "group-id": 18000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-18",
          "group-type": "group-select"
        },
        {
          "group-id": 19000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-19",
          "group-type": "group-select"
        },
        {
          "group-id": 20000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-20",
          "group-type": "group-select"
        },
        {
          "group-id": 21000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-21",
          "group-type": "group-select"
        },
        {
          "group-id": 22000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-22",
          "group-type": "group-select"
        },
        {
          "group-id": 23000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-23",
          "group-type": "group-select"
        },
        {
          "group-id": 24000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-24",
          "group-type": "group-select"
        },
        {
          "group-id": 25000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-25",
          "group-type": "group-select"
        },
        {
          "group-id": 26000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-26",
          "group-type": "group-select"
        },
        {
          "group-id": 27000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-27",
          "group-type": "group-select"
        },
        {
          "group-id": 28000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-28",
          "group-type": "group-select"
        },
        {
          "group-id": 29000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-29",
          "group-type": "group-select"
        },
        {
          "group-id": 30000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-30",
          "group-type": "group-select"
        },
        {
          "group-id": 31000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-31",
          "group-type": "group-select"
        },
        {
          "group-id": 32000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-32",
          "group-type": "group-select"
        },
        {
          "group-id": 33000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-33",
          "group-type": "group-select"
        },
        {
          "group-id": 34000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-34",
          "group-type": "group-select"
        },
        {
          "group-id": 35000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-35",
          "group-type": "group-select"
        },
        {
          "group-id": 36000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-36",
          "group-type": "group-select"
        },
        {
          "group-id": 37000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-37",
          "group-type": "group-select"
        },
        {
          "group-id": 38000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-38",
          "group-type": "group-select"
        },
        {
          "group-id": 39000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-39",
          "group-type": "group-select"
        },
        {
          "group-id": 40000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-40",
          "group-type": "group-select"
        },
        {
          "group-id": 41000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-41",
          "group-type": "group-select"
        },
        {
          "group-id": 42000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-42",
          "group-type": "group-select"
        },
        {
          "group-id": 43000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-43",
          "group-type": "group-select"
        },
        {
          "group-id": 44000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-44",
          "group-type": "group-select"
        },
        {
          "group-id": 45000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-45",
          "group-type": "group-select"
        },
        {
          "group-id": 46000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-46",
          "group-type": "group-select"
        },
        {
          "group-id": 47000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-47",
          "group-type": "group-select"
        },
        {
          "group-id": 48000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-48",
          "group-type": "group-select"
        },
        {
          "group-id": 49000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-49",
          "group-type": "group-select"
        },
        {
          "group-id": 50000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-50",
          "group-type": "group-select"
        },
        {
          "group-id": 51000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-51",
          "group-type": "group-select"
        },
        {
          "group-id": 52000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-52",
          "group-type": "group-select"
        },
        {
          "group-id": 53000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-53",
          "group-type": "group-select"
        },
        {
          "group-id": 54000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-54",
          "group-type": "group-select"
        },
        {
          "group-id": 55000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-55",
          "group-type": "group-select"
        },
        {
          "group-id": 56000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-56",
          "group-type": "group-select"
        },
        {
          "group-id": 57000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-57",
          "group-type": "group-select"
        },
        {
          "group-id": 58000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-58",
          "group-type": "group-select"
        },
        {
          "group-id": 59000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-59",
          "group-type": "group-select"
        },
        {
          "group-id": 60000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-60",
          "group-type": "group-select"
        },
        {
          "group-id": 61000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-61",
          "group-type": "group-select"
        },
        {
          "group-id": 62000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-62",
          "group-type": "group-select"
        },
        {
          "group-id": 63000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-63",
          "group-type": "group-select"
        },
        {
          "group-id": 64000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-64",
          "group-type": "group-select"
        },
        {
          "group-id": 65000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-65",
          "group-type": "group-select"
        },
        {
          "group-id": 66000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-66",
          "group-type": "group-select"
        },
        {
          "group-id": 67000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-67",
          "group-type": "group-select"
        },
        {
          "group-id": 68000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-68",
          "group-type": "group-select"
        },
        {
          "group-id": 69000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-69",
          "group-type": "group-select"
        },
        {
          "group-id": 70000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-70",
          "group-type": "group-select"
        },
        {
          "group-id": 71000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-71",
          "group-type": "group-select"
        },
        {
          "group-id": 72000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-72",
          "group-type": "group-select"
        },
        {
          "group-id": 73000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-73",
          "group-type": "group-select"
        },
        {
          "group-id": 74000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-74",
          "group-type": "group-select"
        },
        {
          "group-id": 75000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-75",
          "group-type": "group-select"
        },
        {
          "group-id": 76000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-76",
          "group-type": "group-select"
        },
        {
          "group-id": 77000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-77",
          "group-type": "group-select"
        },
        {
          "group-id": 78000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-78",
          "group-type": "group-select"
        },
        {
          "group-id": 79000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-79",
          "group-type": "group-select"
        },
        {
          "group-id": 80000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-80",
          "group-type": "group-select"
        },
        {
          "group-id": 81000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-81",
          "group-type": "group-select"
        },
        {
          "group-id": 82000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-82",
          "group-type": "group-select"
        },
        {
          "group-id": 83000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-83",
          "group-type": "group-select"
        },
        {
          "group-id": 84000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-84",
          "group-type": "group-select"
        },
        {
          "group-id": 85000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-85",
          "group-type": "group-select"
        },
        {
          "group-id": 86000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-86",
          "group-type": "group-select"
        },
        {
          "group-id": 87000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-87",
          "group-type": "group-select"
        },
        {
          "group-id": 88000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-88",
          "group-type": "group-select"
        },
        {
          "group-id": 89000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-89",
          "group-type": "group-select"
        },
        {
          "group-id": 90000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-90",
          "group-type": "group-select"
        },
        {
          "group-id": 91000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-91",
          "group-type": "group-select"
        },
        {
          "group-id": 92000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-92",
          "group-type": "group-select"
        },
        {
          "group-id": 93000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-93",
          "group-type": "group-select"
        },
        {
          "group-id": 94000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-94",
          "group-type": "group-select"
        },
        {
          "group-id": 95000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-95",
          "group-type": "group-select"
        },
        {
          "group-id": 96000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-96",
          "group-type": "group-select"
        },
        {
          "group-id": 97000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-97",
          "group-type": "group-select"
        },
        {
          "group-id": 98000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-98",
          "group-type": "group-select"
        },
        {
          "group-id": 99000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-99",
          "group-type": "group-select"
        },
        {
          "group-id": 100000,
          "buckets": {
            "bucket": [
              {
                "bucket-id": 1,
                "weight": 1,
                "action": [
                  {
                    "order": 1,
                    "output-action": {
                      "output-node-connector": "1"
                    }
                  }
                ]
              }
            ]
          },
          "group-name": "Select-100",
          "group-type": "group-select"
        }
  ]
}</msg>
<arg>${data}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.193277" elapsed="0.000775"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.194479" level="INFO">{'Content-Type': 'application/json'}</msg>
<arg>${content_type}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.194205" elapsed="0.000319"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.195030" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.194718" elapsed="0.000355"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-04-17T03:18:10.195920" level="INFO">${accumulator} = {'Content-Type': 'application/json'}</msg>
<var>${accumulator}</var>
<arg>${first}</arg>
<doc>Returns a copy of the given dictionary.</doc>
<status status="PASS" start="2026-04-17T03:18:10.195707" elapsed="0.000240"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-04-17T03:18:10.196279" level="INFO">${items_to_add} = []</msg>
<var>${items_to_add}</var>
<arg>${second}</arg>
<doc>Returns items of the given ``dictionary`` as a list.</doc>
<status status="PASS" start="2026-04-17T03:18:10.196098" elapsed="0.000209"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${accumulator}</arg>
<arg>@{items_to_add}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.196498" elapsed="0.000210"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.197117" level="INFO">{'Content-Type': 'application/json'}</msg>
<arg>${accumulator}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.196868" elapsed="0.000292"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-04-17T03:18:10.197202" elapsed="0.000028"/>
</return>
<msg time="2026-04-17T03:18:10.197354" level="INFO">${headers} = {'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>first=${content_type}</arg>
<arg>second=${accept}</arg>
<doc>Take two dicts, join them, return result. Second argument values take precedence.</doc>
<status status="PASS" start="2026-04-17T03:18:10.195280" elapsed="0.002098"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:10.203853" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:10.405693" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:10.808805" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:10.811473" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>${uri}</arg>
<arg>data=${data}</arg>
<arg>headers=${headers}</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.199648" elapsed="0.616015">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:18:10.197464" elapsed="0.618383">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="POST On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>${uri}</arg>
<arg>data=${data}</arg>
<arg>headers=${headers}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.816265" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.815923" elapsed="0.000506"/>
</branch>
<status status="FAIL" start="2026-04-17T03:18:10.197446" elapsed="0.619034">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.817242" elapsed="0.000043"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:10.817480" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:10.817419" elapsed="0.000123"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:10.817370" elapsed="0.000203"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.817788" elapsed="0.000032"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:18:10.817917" elapsed="0.000031"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>data=${data}</arg>
<arg>content_type=${content_type}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<arg>http_timeout=${http_timeout}</arg>
<doc>POST data to given URI, check status code and return response text.
${content_type} and ${accept} are mandatory Python objects with headers to use.
If ${normalize_json}, normalize text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.191842" elapsed="0.626262">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:10.818295" elapsed="0.000025"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>extension=json</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>content_type=${HEADERS_YANG_JSON}</arg>
<arg>mapping=${mapping}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>endline=${\n}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve URI and data from folder, call Post_To_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:18:09.782840" elapsed="1.035624">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=response</arg>
<arg>mapping=${mapping}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.818896" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.818632" elapsed="0.000361"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:10.818608" elapsed="0.000417"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:10.819070" elapsed="0.000020"/>
</return>
<arg>folder=${VAR_DIR}/add-group-1</arg>
<arg>mapping=${mapping}</arg>
<arg>session=session</arg>
<arg>iterations=${iter}</arg>
<doc>Add arguments sensible for JSON data, return Post_Templated response text.
Optionally, verification against response.json (no iteration) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.
Response status code must be one of values from ${explicit_status_codes} if specified or one of set
created from all positive HTTP status codes together with ${additional_allowed_status_codes}.</doc>
<status status="FAIL" start="2026-04-17T03:18:09.780323" elapsed="1.038910">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:18:09.768820" elapsed="1.050520">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:18:09.766690" elapsed="1.052781">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<doc>Add 100 groups of type 1 in every switch.</doc>
<status status="FAIL" start="2026-04-17T03:18:09.766192" elapsed="1.053545">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t2" name="Add Group 2 In Every Switch" line="35">
<for flavor="IN RANGE">
<iter>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.825542" level="INFO">&amp;{mapping} = { NODE=openflow:1 }</msg>
<var>&amp;{mapping}</var>
<arg>NODE=openflow:${switch}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.824911" elapsed="0.000669"/>
</kw>
<kw name="Post_As_Json_Templated" owner="TemplatedRequests">
<kw name="Post_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.870245" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:10.869842" elapsed="0.000435"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.871303" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.870925" elapsed="0.000478">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:10.871504" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:10.870534" elapsed="0.000995"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.872088" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:10.871696" elapsed="0.000420"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.872444" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:10.872641" level="INFO">${template} = /rests/data/opendaylight-inventory:nodes/node=$NODE
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:10.872274" elapsed="0.000393"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.873074" level="INFO">/rests/data/opendaylight-inventory:nodes/node=$NODE
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.872823" elapsed="0.000298"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.874179" level="INFO">mapping: {'NODE': 'openflow:1'}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.873916" elapsed="0.000308"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.874676" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.874400" elapsed="0.000303"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.875463" level="INFO">${value} = openflow:1</msg>
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="PASS" start="2026-04-17T03:18:10.875067" elapsed="0.000422"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-04-17T03:18:10.876528" level="INFO">${encoded} = openflow%3A1</msg>
<var>${encoded}</var>
<arg>${value}</arg>
<arg>:</arg>
<arg>%3A</arg>
<doc>Replaces ``pattern`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.876046" elapsed="0.000509"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-04-17T03:18:10.876609" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:18:10.876769" level="INFO">${encoded_value} = openflow%3A1</msg>
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="PASS" start="2026-04-17T03:18:10.875694" elapsed="0.001100"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.876952" elapsed="0.000324"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-04-17T03:18:10.874931" elapsed="0.002394"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-04-17T03:18:10.874755" elapsed="0.002611"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:18:10.877426" elapsed="0.000028"/>
</return>
<msg time="2026-04-17T03:18:10.877585" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:18:10.873588" elapsed="0.004022"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.873254" elapsed="0.004389"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.877815" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.877668" elapsed="0.000203"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.873229" elapsed="0.004662"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.878604" level="INFO">${final_text} = /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.878032" elapsed="0.000599"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:10.878680" elapsed="0.000028"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:10.869201" elapsed="0.009601"/>
</kw>
<msg time="2026-04-17T03:18:10.878855" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:18:10.856899" elapsed="0.022010"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.891067" elapsed="0.000029"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.903035" elapsed="0.000030"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.914723" elapsed="0.000042"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.915043" elapsed="0.000026"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.915310" elapsed="0.000028"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.915777" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.915623" elapsed="0.000216"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:10.915605" elapsed="0.000258"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.916008" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.916174" elapsed="0.000019"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.916335" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:18:10.915564" elapsed="0.000839"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:18:10.915440" elapsed="0.000993"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.916582" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:10.916659" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:18:10.916797" level="INFO">${uri} = /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from 1, by one 100 times.
Template variable ${j} is calculated as ${i} incremented by offset 0 ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:18:10.852262" elapsed="0.064562"/>
</kw>
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:18:10.927395" elapsed="0.000427"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.941195" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/post_data.prolog.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:10.940737" elapsed="0.000491"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.942070" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/post_data.prolog.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.941779" elapsed="0.000383">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:10.942259" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:10.941423" elapsed="0.000860"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.942862" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/post_data.prolog.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:10.942467" elapsed="0.000423"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.943236" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:10.943495" level="INFO">${template} = {
  "flow-node-inventory:group": [
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:10.943070" elapsed="0.000451"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.943926" level="INFO">{
  "flow-node-inventory:group": [
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.943677" elapsed="0.000296"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:10.944574" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.944075" elapsed="0.000669"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.945363" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:10.945039" elapsed="0.000367"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.944813" elapsed="0.000697"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.944042" elapsed="0.001492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.946342" level="INFO">${final_text} = {
  "flow-node-inventory:group": [</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.945685" elapsed="0.000684"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:10.946439" elapsed="0.000041"/>
</return>
<msg time="2026-04-17T03:18:10.946613" level="INFO">${prolog} = {
  "flow-node-inventory:group": [</msg>
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:10.939939" elapsed="0.006699"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.960770" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/post_data.epilog.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:10.960242" elapsed="0.000565"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.961639" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/post_data.epilog.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.961349" elapsed="0.000370">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:10.961814" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:10.960990" elapsed="0.000849"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.962407" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/post_data.epilog.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:10.962002" elapsed="0.000433"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.962741" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:10.962915" level="INFO">${template} =   ]
}
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:10.962596" elapsed="0.000344"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.963424" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.963097" elapsed="0.000394"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:10.963983" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.963592" elapsed="0.000453"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.964541" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:10.964219" elapsed="0.000348"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.964074" elapsed="0.000528"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.963565" elapsed="0.001059"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.965232" level="INFO">${final_text} =   ]
}</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.964770" elapsed="0.000489"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:10.965311" elapsed="0.000037"/>
</return>
<msg time="2026-04-17T03:18:10.965496" level="INFO">${epilog} =   ]
}</msg>
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:10.958956" elapsed="0.006566"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.979357" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/data.item.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:10.978858" elapsed="0.000550"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.980284" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/data.item.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.979940" elapsed="0.000426">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2.vanadium/data.item.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:10.980479" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:10.979589" elapsed="0.000915"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.981056" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/data.item.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:10.980668" elapsed="0.000416"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:10.981404" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:10.981575" level="INFO">${template} =     {
      "group-id": ${i},
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": ${i}000,
            "action": [
              {
               ...</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:10.981244" elapsed="0.000358"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.982057" level="INFO">    {
      "group-id": ${i},
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": ${i}000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": ${i}000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-${i}",
      "group-type": "group-ff"
    }
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:10.981758" elapsed="0.000347"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:10.982579" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.982195" elapsed="0.000446"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.983113" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:10.982814" elapsed="0.000325"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.982668" elapsed="0.000507"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.982168" elapsed="0.001029"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.984064" level="INFO">${final_text} =     {
      "group-id": ${i},
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": ${i}000,
            "action": [
              {
               ...</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.983395" elapsed="0.000700"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:10.984148" elapsed="0.000036"/>
</return>
<msg time="2026-04-17T03:18:10.984318" level="INFO">${item_template} =     {
      "group-id": ${i},
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": ${i}000,
            "action": [
              {
               ...</msg>
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:10.978102" elapsed="0.006242"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.984805" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:18:10.984535" elapsed="0.000297"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.985363" level="INFO">${separator} = ,
</msg>
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:10.984995" elapsed="0.000418"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:10.986094" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:10.985855" elapsed="0.000297"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.985841" elapsed="0.000335"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.986724" level="INFO">${j} = 1</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.986332" elapsed="0.000419"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.987765" level="INFO">${item} =     {
      "group-id": 1,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 1000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.986907" elapsed="0.000888"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.987952" elapsed="0.000203"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-04-17T03:18:10.985805" elapsed="0.002388"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.988701" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.988459" elapsed="0.000468"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.988444" elapsed="0.000507"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.989477" level="INFO">${j} = 2</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.989093" elapsed="0.000410"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.990302" level="INFO">${item} =     {
      "group-id": 2,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 2000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.989659" elapsed="0.000693"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.990563" elapsed="0.000215"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-04-17T03:18:10.988411" elapsed="0.002416"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.991287" elapsed="0.000262"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.991044" elapsed="0.000545"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.991028" elapsed="0.000585"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.992320" level="INFO">${j} = 3</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.991757" elapsed="0.000606"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.993132" level="INFO">${item} =     {
      "group-id": 3,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 3000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.992548" elapsed="0.000612"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.993328" elapsed="0.000236"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-04-17T03:18:10.990995" elapsed="0.002609"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.994021" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.993782" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.993767" elapsed="0.000500"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.994796" level="INFO">${j} = 4</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.994434" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.995599" level="INFO">${item} =     {
      "group-id": 4,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 4000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.994977" elapsed="0.000651"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.995799" elapsed="0.000217"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-04-17T03:18:10.993736" elapsed="0.002329"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.996521" elapsed="0.000198"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.996251" elapsed="0.000507"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.996236" elapsed="0.000546"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.997288" level="INFO">${j} = 5</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.996933" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.998062" level="INFO">${item} =     {
      "group-id": 5,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 5000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.997482" elapsed="0.000608"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.998242" elapsed="0.000205"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-04-17T03:18:10.996204" elapsed="0.002281"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:10.998895" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:10.998661" elapsed="0.000454"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:10.998647" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:10.999695" level="INFO">${j} = 6</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.999278" elapsed="0.000444"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.000521" level="INFO">${item} =     {
      "group-id": 6,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 6000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:10.999887" elapsed="0.000669"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.000770" elapsed="0.000186"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-04-17T03:18:10.998617" elapsed="0.002379"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.001427" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.001177" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.001163" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.002191" level="INFO">${j} = 7</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.001821" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.002966" level="INFO">${item} =     {
      "group-id": 7,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 7000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.002374" elapsed="0.000621"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.003151" elapsed="0.000227"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-04-17T03:18:11.001132" elapsed="0.002299"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.003850" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.003614" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.003599" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.004613" level="INFO">${j} = 8</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.004242" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.005547" level="INFO">${item} =     {
      "group-id": 8,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 8000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.004797" elapsed="0.000779"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.005732" elapsed="0.000230"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-04-17T03:18:11.003568" elapsed="0.002434"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.006492" elapsed="0.000203"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.006181" elapsed="0.000561"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.006167" elapsed="0.000600"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.007355" level="INFO">${j} = 9</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.006911" elapsed="0.000489"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.008153" level="INFO">${item} =     {
      "group-id": 9,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 9000,
            "action": [
              {
                "orde...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.007576" elapsed="0.000606"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.008335" elapsed="0.000198"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-04-17T03:18:11.006136" elapsed="0.002434"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.008982" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.008748" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.008733" elapsed="0.000491"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.009744" level="INFO">${j} = 10</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.009370" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.010596" level="INFO">${item} =     {
      "group-id": 10,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 10000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.009923" elapsed="0.000703"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.010786" elapsed="0.000185"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-04-17T03:18:11.008703" elapsed="0.002305"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.011501" elapsed="0.000205"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.011199" elapsed="0.000546"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.011182" elapsed="0.000587"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.012265" level="INFO">${j} = 11</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.011911" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.013103" level="INFO">${item} =     {
      "group-id": 11,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 11000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.012523" elapsed="0.000608"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.013284" elapsed="0.000200"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-04-17T03:18:11.011147" elapsed="0.002374"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.013963" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.013701" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.013686" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.014733" level="INFO">${j} = 12</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.014354" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.015608" level="INFO">${item} =     {
      "group-id": 12,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 12000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.014912" elapsed="0.000727"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.015797" elapsed="0.000211"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-04-17T03:18:11.013655" elapsed="0.002393"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.016485" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.016230" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.016215" elapsed="0.000519"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.017254" level="INFO">${j} = 13</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.016892" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.018047" level="INFO">${item} =     {
      "group-id": 13,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 13000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.017450" elapsed="0.000626"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.018230" elapsed="0.000210"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-04-17T03:18:11.016184" elapsed="0.002294"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.018900" elapsed="0.000197"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.018658" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.018644" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.019745" level="INFO">${j} = 14</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.019306" elapsed="0.000470"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.020552" level="INFO">${item} =     {
      "group-id": 14,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 14000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.019946" elapsed="0.000635"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.020735" elapsed="0.000201"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-04-17T03:18:11.018613" elapsed="0.002368"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.021447" elapsed="0.000197"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.021165" elapsed="0.000540"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.021150" elapsed="0.000581"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.022431" level="INFO">${j} = 15</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.021874" elapsed="0.000590"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.023227" level="INFO">${item} =     {
      "group-id": 15,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 15000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.022622" elapsed="0.000633"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.023475" elapsed="0.000192"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-04-17T03:18:11.021118" elapsed="0.002587"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.024132" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.023884" elapsed="0.000573"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.023869" elapsed="0.000626"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.025250" level="INFO">${j} = 16</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.024708" elapsed="0.000581"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.026459" level="INFO">${item} =     {
      "group-id": 16,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 16000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.025558" elapsed="0.000944"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.026734" elapsed="0.000277"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-04-17T03:18:11.023839" elapsed="0.003238"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.027776" elapsed="0.000290"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.027370" elapsed="0.000773"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.027346" elapsed="0.000833"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.028948" level="INFO">${j} = 17</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.028415" elapsed="0.000572"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.030131" level="INFO">${item} =     {
      "group-id": 17,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 17000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.029235" elapsed="0.000944"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.030432" elapsed="0.000275"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-04-17T03:18:11.027279" elapsed="0.003484"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.031456" elapsed="0.000281"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.031024" elapsed="0.000770"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.031003" elapsed="0.000827"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.032562" level="INFO">${j} = 18</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.032037" elapsed="0.000553"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.033363" level="INFO">${item} =     {
      "group-id": 18,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 18000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.032754" elapsed="0.000655"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.033566" elapsed="0.000186"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-04-17T03:18:11.030960" elapsed="0.002829"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.034207" elapsed="0.000211"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.033967" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.033952" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.034977" level="INFO">${j} = 19</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.034623" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.035787" level="INFO">${item} =     {
      "group-id": 19,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 19000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.035156" elapsed="0.000659"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.035969" elapsed="0.000186"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-04-17T03:18:11.033922" elapsed="0.002270"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.036650" elapsed="0.000232"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.036381" elapsed="0.000545"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.036367" elapsed="0.000587"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.037580" level="INFO">${j} = 20</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.037125" elapsed="0.000485"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.038565" level="INFO">${item} =     {
      "group-id": 20,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 20000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.037796" elapsed="0.000809"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.038819" elapsed="0.000270"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-04-17T03:18:11.036336" elapsed="0.002802"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.039632" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.039364" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.039344" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.040400" level="INFO">${j} = 21</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.040024" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.041219" level="INFO">${item} =     {
      "group-id": 21,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 21000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.040583" elapsed="0.000664"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.041426" elapsed="0.000191"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-04-17T03:18:11.039291" elapsed="0.002368"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.042155" elapsed="0.000423"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.041870" elapsed="0.000753"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.041854" elapsed="0.000797"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.043221" level="INFO">${j} = 22</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.042816" elapsed="0.000437"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.044203" level="INFO">${item} =     {
      "group-id": 22,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 22000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.043491" elapsed="0.000748"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.044423" elapsed="0.000198"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-04-17T03:18:11.041816" elapsed="0.002843"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.045113" elapsed="0.000207"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.044840" elapsed="0.000520"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.044826" elapsed="0.000575"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.045915" level="INFO">${j} = 23</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.045547" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.046980" level="INFO">${item} =     {
      "group-id": 23,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 23000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.046102" elapsed="0.000908"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.047183" elapsed="0.000264"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-04-17T03:18:11.044794" elapsed="0.002693"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.048005" elapsed="0.000238"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.047704" elapsed="0.000585"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.047683" elapsed="0.000638"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.048989" level="INFO">${j} = 24</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.048539" elapsed="0.000482"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.049873" level="INFO">${item} =     {
      "group-id": 24,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 24000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.049186" elapsed="0.000716"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.050091" elapsed="0.000193"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-04-17T03:18:11.047642" elapsed="0.002680"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.050782" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.050535" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.050520" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.051712" level="INFO">${j} = 25</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.051179" elapsed="0.000569"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.052587" level="INFO">${item} =     {
      "group-id": 25,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 25000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.051950" elapsed="0.000731"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.052871" elapsed="0.000211"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-04-17T03:18:11.050488" elapsed="0.002634"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.053571" elapsed="0.000217"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.053309" elapsed="0.000519"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.053295" elapsed="0.000558"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.054358" level="INFO">${j} = 26</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.053997" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.055198" level="INFO">${item} =     {
      "group-id": 26,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 26000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.054585" elapsed="0.000642"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.055459" elapsed="0.000234"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-04-17T03:18:11.053263" elapsed="0.002470"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.056160" elapsed="0.000196"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.055919" elapsed="0.000553"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.055904" elapsed="0.000601"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.057072" level="INFO">${j} = 27</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.056709" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.057881" level="INFO">${item} =     {
      "group-id": 27,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 27000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.057265" elapsed="0.000647"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.058103" elapsed="0.000241"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-04-17T03:18:11.055873" elapsed="0.002528"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.058827" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.058587" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.058573" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.059639" level="INFO">${j} = 28</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.059226" elapsed="0.000440"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.060447" level="INFO">${item} =     {
      "group-id": 28,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 28000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.059823" elapsed="0.000654"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.060633" elapsed="0.000185"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-04-17T03:18:11.058541" elapsed="0.002315"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.061484" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.061045" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.061030" elapsed="0.000707"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.062451" level="INFO">${j} = 29</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.061878" elapsed="0.000601"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.063232" level="INFO">${item} =     {
      "group-id": 29,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 29000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.062633" elapsed="0.000638"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.063515" elapsed="0.000219"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-04-17T03:18:11.060996" elapsed="0.002779"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.064199" elapsed="0.000221"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.063957" elapsed="0.000506"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.063942" elapsed="0.000546"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.064997" level="INFO">${j} = 30</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.064633" elapsed="0.000467"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.066260" level="INFO">${item} =     {
      "group-id": 30,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 30000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.065473" elapsed="0.000817"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.066483" elapsed="0.000197"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-04-17T03:18:11.063911" elapsed="0.002808"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.067136" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.066898" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.066884" elapsed="0.000545"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.068124" level="INFO">${j} = 31</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.067735" elapsed="0.000416"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.068917" level="INFO">${item} =     {
      "group-id": 31,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 31000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.068306" elapsed="0.000641"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.069101" elapsed="0.000200"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-04-17T03:18:11.066853" elapsed="0.002491"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.069834" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.069592" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.069576" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.070631" level="INFO">${j} = 32</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.070244" elapsed="0.000413"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.071437" level="INFO">${item} =     {
      "group-id": 32,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 32000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.070811" elapsed="0.000656"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.071621" elapsed="0.000187"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-04-17T03:18:11.069542" elapsed="0.002303"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.072276" elapsed="0.000210"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.072024" elapsed="0.000499"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.072010" elapsed="0.000538"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.073056" level="INFO">${j} = 33</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.072689" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.073878" level="INFO">${item} =     {
      "group-id": 33,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 33000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.073236" elapsed="0.000671"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.074088" elapsed="0.000191"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-04-17T03:18:11.071980" elapsed="0.002336"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.074763" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.074517" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.074502" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.075597" level="INFO">${j} = 34</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.075165" elapsed="0.000463"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.076465" level="INFO">${item} =     {
      "group-id": 34,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 34000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.075796" elapsed="0.000700"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.076653" elapsed="0.000194"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-04-17T03:18:11.074470" elapsed="0.002414"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.077396" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.077071" elapsed="0.000556"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.077057" elapsed="0.000596"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.078164" level="INFO">${j} = 35</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.077798" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.078958" level="INFO">${item} =     {
      "group-id": 35,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 35000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.078348" elapsed="0.000639"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.079143" elapsed="0.000185"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-04-17T03:18:11.077025" elapsed="0.002376"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.080889" elapsed="0.000195"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.080635" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.079587" elapsed="0.001561"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.081676" level="INFO">${j} = 36</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.081290" elapsed="0.000413"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.082458" level="INFO">${item} =     {
      "group-id": 36,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 36000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.081856" elapsed="0.000631"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.082640" elapsed="0.000188"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-04-17T03:18:11.079554" elapsed="0.003312"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.083287" elapsed="0.000259"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.083049" elapsed="0.000536"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.083034" elapsed="0.000576"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.084110" level="INFO">${j} = 37</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.083751" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.084899" level="INFO">${item} =     {
      "group-id": 37,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 37000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.084289" elapsed="0.000639"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.085099" elapsed="0.000215"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-04-17T03:18:11.083003" elapsed="0.002350"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.085799" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.085557" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.085541" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.086565" level="INFO">${j} = 38</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.086189" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.087372" level="INFO">${item} =     {
      "group-id": 38,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 38000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.086746" elapsed="0.000675"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.087599" elapsed="0.000220"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-04-17T03:18:11.085509" elapsed="0.002351"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.088322" elapsed="0.000245"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.088076" elapsed="0.000531"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.088060" elapsed="0.000571"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.089145" level="INFO">${j} = 39</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.088772" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.089936" level="INFO">${item} =     {
      "group-id": 39,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 39000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.089328" elapsed="0.000637"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.090212" elapsed="0.000210"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-04-17T03:18:11.088025" elapsed="0.002436"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.090892" elapsed="0.000232"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.090644" elapsed="0.000521"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.090629" elapsed="0.000561"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.091815" level="INFO">${j} = 40</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.091428" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.092648" level="INFO">${item} =     {
      "group-id": 40,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 40000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.092000" elapsed="0.000677"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.092833" elapsed="0.000189"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-04-17T03:18:11.090597" elapsed="0.002470"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.093544" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.093259" elapsed="0.000518"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.093243" elapsed="0.000560"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.094358" level="INFO">${j} = 41</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.093948" elapsed="0.000478"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.095424" level="INFO">${item} =     {
      "group-id": 41,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 41000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.094627" elapsed="0.000835"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.095661" elapsed="0.000227"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-04-17T03:18:11.093210" elapsed="0.002726"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.096499" elapsed="0.000226"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.096175" elapsed="0.000597"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.096155" elapsed="0.000648"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.097476" level="INFO">${j} = 42</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.097006" elapsed="0.000502"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.098448" level="INFO">${item} =     {
      "group-id": 42,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 42000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.097702" elapsed="0.000783"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.098695" elapsed="0.000239"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-04-17T03:18:11.096115" elapsed="0.002859"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.099787" elapsed="0.000217"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.099486" elapsed="0.000566"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.099161" elapsed="0.000920"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.100652" level="INFO">${j} = 43</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.100244" elapsed="0.000436"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.101458" level="INFO">${item} =     {
      "group-id": 43,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 43000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.100835" elapsed="0.000651"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.101642" elapsed="0.000213"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-04-17T03:18:11.099127" elapsed="0.002767"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.102322" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.102082" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.102067" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.103096" level="INFO">${j} = 44</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.102734" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.104044" level="INFO">${item} =     {
      "group-id": 44,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 44000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.103357" elapsed="0.000717"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.104231" elapsed="0.000207"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-04-17T03:18:11.102034" elapsed="0.002453"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.105074" elapsed="0.000237"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.104754" elapsed="0.000606"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.104731" elapsed="0.000680"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.106075" level="INFO">${j} = 45</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.105599" elapsed="0.000511"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.107147" level="INFO">${item} =     {
      "group-id": 45,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 45000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.106319" elapsed="0.000866"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.107459" elapsed="0.000321"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-04-17T03:18:11.104685" elapsed="0.003146"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.108487" elapsed="0.000250"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.108116" elapsed="0.000673"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.108088" elapsed="0.000736"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.109531" level="INFO">${j} = 46</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.109037" elapsed="0.000526"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.110570" level="INFO">${item} =     {
      "group-id": 46,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 46000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.109755" elapsed="0.000854"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.110824" elapsed="0.000260"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-04-17T03:18:11.108040" elapsed="0.003097"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.111752" elapsed="0.000239"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.111437" elapsed="0.000595"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.111413" elapsed="0.000645"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.112668" level="INFO">${j} = 47</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.112226" elapsed="0.000478"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.113680" level="INFO">${item} =     {
      "group-id": 47,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 47000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.112905" elapsed="0.000814"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.113922" elapsed="0.000222"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-04-17T03:18:11.111329" elapsed="0.002863"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.114817" elapsed="0.000258"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.114475" elapsed="0.000650"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.114446" elapsed="0.000714"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.115860" level="INFO">${j} = 48</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.115352" elapsed="0.000537"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.116789" level="INFO">${item} =     {
      "group-id": 48,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 48000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.116050" elapsed="0.000769"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.117031" elapsed="0.000198"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-04-17T03:18:11.114378" elapsed="0.002895"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.117770" elapsed="0.000218"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.117521" elapsed="0.000586"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.117505" elapsed="0.000638"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.118756" level="INFO">${j} = 49</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.118310" elapsed="0.000478"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.119656" level="INFO">${item} =     {
      "group-id": 49,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 49000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.118977" elapsed="0.000709"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.119858" elapsed="0.000201"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-04-17T03:18:11.117469" elapsed="0.002637"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.120917" elapsed="0.000231"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.120605" elapsed="0.000592"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.120325" elapsed="0.000904"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.121894" level="INFO">${j} = 50</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.121427" elapsed="0.000503"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.122915" level="INFO">${item} =     {
      "group-id": 50,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 50000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.122138" elapsed="0.000813"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.123152" elapsed="0.000304"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-04-17T03:18:11.120283" elapsed="0.003228"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.124045" elapsed="0.000220"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.123764" elapsed="0.000545"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.123743" elapsed="0.000591"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.124895" level="INFO">${j} = 51</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.124516" elapsed="0.000406"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.125748" level="INFO">${item} =     {
      "group-id": 51,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 51000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.125097" elapsed="0.000681"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.125950" elapsed="0.000190"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-04-17T03:18:11.123699" elapsed="0.002479"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.126641" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.126363" elapsed="0.000503"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.126346" elapsed="0.000544"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.127476" level="INFO">${j} = 52</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.127048" elapsed="0.000456"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.128253" level="INFO">${item} =     {
      "group-id": 52,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 52000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.127660" elapsed="0.000622"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.128452" elapsed="0.000187"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-04-17T03:18:11.126315" elapsed="0.002361"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.129097" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.128862" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.128847" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.129875" level="INFO">${j} = 53</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.129506" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.130682" level="INFO">${item} =     {
      "group-id": 53,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 53000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.130061" elapsed="0.000651"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.130880" elapsed="0.000199"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-04-17T03:18:11.128816" elapsed="0.002372"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.131682" elapsed="0.000190"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.131425" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.131365" elapsed="0.000581"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.132547" level="INFO">${j} = 54</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.132115" elapsed="0.000468"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.133528" level="INFO">${item} =     {
      "group-id": 54,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 54000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.132747" elapsed="0.000818"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.133773" elapsed="0.000249"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-04-17T03:18:11.131334" elapsed="0.002740"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.134622" elapsed="0.000207"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.134296" elapsed="0.000584"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.134281" elapsed="0.000628"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.135504" level="INFO">${j} = 55</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.135077" elapsed="0.000464"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.136458" level="INFO">${item} =     {
      "group-id": 55,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 55000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.135736" elapsed="0.000751"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.136656" elapsed="0.000196"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-04-17T03:18:11.134249" elapsed="0.002641"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.137312" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.137077" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.137057" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.138241" level="INFO">${j} = 56</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.137783" elapsed="0.000485"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.139342" level="INFO">${item} =     {
      "group-id": 56,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 56000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.138483" elapsed="0.000897"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.139676" elapsed="0.000267"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-04-17T03:18:11.137027" elapsed="0.002966"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.140830" elapsed="0.000216"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.140519" elapsed="0.000571"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.140248" elapsed="0.000872"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.141819" level="INFO">${j} = 57</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.141310" elapsed="0.000543"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.142821" level="INFO">${item} =     {
      "group-id": 57,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 57000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.142057" elapsed="0.000803"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.143067" elapsed="0.000246"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-04-17T03:18:11.140201" elapsed="0.003161"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.143993" elapsed="0.000246"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.143674" elapsed="0.000616"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.143652" elapsed="0.000670"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.144985" level="INFO">${j} = 58</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.144535" elapsed="0.000482"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.145802" level="INFO">${item} =     {
      "group-id": 58,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 58000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.145180" elapsed="0.000729"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.146091" elapsed="0.000196"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-04-17T03:18:11.143605" elapsed="0.002721"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.146823" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.146564" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.146548" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.147672" level="INFO">${j} = 59</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.147222" elapsed="0.000485"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.148692" level="INFO">${item} =     {
      "group-id": 59,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 59000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.147922" elapsed="0.000808"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.148926" elapsed="0.000262"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-04-17T03:18:11.146513" elapsed="0.002723"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.149818" elapsed="0.000245"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.149501" elapsed="0.000611"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.149480" elapsed="0.000667"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.150827" level="INFO">${j} = 60</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.150349" elapsed="0.000512"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.151871" level="INFO">${item} =     {
      "group-id": 60,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 60000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.151057" elapsed="0.000851"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.152106" elapsed="0.000235"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-04-17T03:18:11.149434" elapsed="0.002970"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.152970" elapsed="0.000235"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.152669" elapsed="0.000586"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.152626" elapsed="0.000660"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.153963" level="INFO">${j} = 61</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.153486" elapsed="0.000516"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.154909" level="INFO">${item} =     {
      "group-id": 61,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 61000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.154221" elapsed="0.000716"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.155115" elapsed="0.000238"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-04-17T03:18:11.152586" elapsed="0.002846"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.155967" elapsed="0.000234"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.155648" elapsed="0.000600"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.155628" elapsed="0.000658"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.156943" level="INFO">${j} = 62</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.156490" elapsed="0.000483"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.157900" level="INFO">${item} =     {
      "group-id": 62,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 62000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.157163" elapsed="0.000774"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.158143" elapsed="0.000271"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-04-17T03:18:11.155591" elapsed="0.002877"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.159049" elapsed="0.000242"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.158721" elapsed="0.000634"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.158698" elapsed="0.000753"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.160125" level="INFO">${j} = 63</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.159652" elapsed="0.000589"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.161296" level="INFO">${item} =     {
      "group-id": 63,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 63000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.160484" elapsed="0.000848"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.161558" elapsed="0.000243"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-04-17T03:18:11.158650" elapsed="0.003205"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.162656" elapsed="0.000233"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.162299" elapsed="0.000633"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.162080" elapsed="0.000877"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.163639" level="INFO">${j} = 64</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.163116" elapsed="0.000558"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.164495" level="INFO">${item} =     {
      "group-id": 64,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 64000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.163835" elapsed="0.000690"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.164682" elapsed="0.000190"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-04-17T03:18:11.162040" elapsed="0.002872"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.165440" elapsed="0.000214"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.165154" elapsed="0.000540"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.165133" elapsed="0.000586"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.166516" level="INFO">${j} = 65</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.165864" elapsed="0.000681"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.167460" level="INFO">${item} =     {
      "group-id": 65,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 65000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.166701" elapsed="0.000797"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.167686" elapsed="0.000216"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-04-17T03:18:11.165091" elapsed="0.002851"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.168421" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.168128" elapsed="0.000528"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.168112" elapsed="0.000579"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.169239" level="INFO">${j} = 66</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.168841" elapsed="0.000425"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.170264" level="INFO">${item} =     {
      "group-id": 66,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 66000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.169466" elapsed="0.000827"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.170473" elapsed="0.000188"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-04-17T03:18:11.168080" elapsed="0.002619"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.171311" elapsed="0.000302"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.170880" elapsed="0.000782"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.170865" elapsed="0.000828"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.172282" level="INFO">${j} = 67</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.171862" elapsed="0.000448"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.173080" level="INFO">${item} =     {
      "group-id": 67,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 67000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.172484" elapsed="0.000624"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.173262" elapsed="0.000210"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-04-17T03:18:11.170834" elapsed="0.002675"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.174042" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.173701" elapsed="0.000574"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.173686" elapsed="0.000613"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.174926" level="INFO">${j} = 68</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.174503" elapsed="0.000457"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.175812" level="INFO">${item} =     {
      "group-id": 68,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 68000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.175138" elapsed="0.000707"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.176009" elapsed="0.000195"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-04-17T03:18:11.173654" elapsed="0.002588"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.176685" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.176445" elapsed="0.000463"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.176429" elapsed="0.000503"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.177458" level="INFO">${j} = 69</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.177080" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.178221" level="INFO">${item} =     {
      "group-id": 69,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 69000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.177640" elapsed="0.000611"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.178425" elapsed="0.000186"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-04-17T03:18:11.176380" elapsed="0.002269"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.179077" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.178834" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.178815" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.179919" level="INFO">${j} = 70</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.179558" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.180711" level="INFO">${item} =     {
      "group-id": 70,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 70000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.180103" elapsed="0.000638"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.180897" elapsed="0.000184"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-04-17T03:18:11.178783" elapsed="0.002336"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.181728" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.181482" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.181290" elapsed="0.000687"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.182536" level="INFO">${j} = 71</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.182119" elapsed="0.000444"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.183295" level="INFO">${item} =     {
      "group-id": 71,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 71000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.182719" elapsed="0.000604"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.183533" elapsed="0.000190"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-04-17T03:18:11.181258" elapsed="0.002503"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.184177" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.183942" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.183927" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.184933" level="INFO">${j} = 72</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.184581" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.185759" level="INFO">${item} =     {
      "group-id": 72,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 72000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.185113" elapsed="0.000675"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.186019" elapsed="0.000189"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-04-17T03:18:11.183896" elapsed="0.002350"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.186691" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.186453" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.186438" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.187533" level="INFO">${j} = 73</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.187104" elapsed="0.000457"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.188461" level="INFO">${item} =     {
      "group-id": 73,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 73000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.187855" elapsed="0.000634"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.188647" elapsed="0.000186"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-04-17T03:18:11.186404" elapsed="0.002467"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.189286" elapsed="0.000202"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.189050" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.189036" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.190053" level="INFO">${j} = 74</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.189698" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.190828" level="INFO">${item} =     {
      "group-id": 74,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 74000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.190232" elapsed="0.000624"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.191010" elapsed="0.000183"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-04-17T03:18:11.189005" elapsed="0.002225"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.191691" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.191441" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.191409" elapsed="0.000533"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.192469" level="INFO">${j} = 75</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.192088" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.193223" level="INFO">${item} =     {
      "group-id": 75,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 75000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.192646" elapsed="0.000605"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.193418" elapsed="0.000192"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-04-17T03:18:11.191363" elapsed="0.002284"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.194066" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.193834" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.193819" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.194857" level="INFO">${j} = 76</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.194485" elapsed="0.000399"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.195722" level="INFO">${item} =     {
      "group-id": 76,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 76000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.195040" elapsed="0.000711"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.195904" elapsed="0.000183"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-04-17T03:18:11.193789" elapsed="0.002336"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.196573" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.196317" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.196291" elapsed="0.000527"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.197306" level="INFO">${j} = 77</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.196957" elapsed="0.000375"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.198139" level="INFO">${item} =     {
      "group-id": 77,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 77000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.197564" elapsed="0.000603"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.198320" elapsed="0.000200"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-04-17T03:18:11.196260" elapsed="0.002297"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.199116" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.198874" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.198721" elapsed="0.000642"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.199895" level="INFO">${j} = 78</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.199540" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.200667" level="INFO">${item} =     {
      "group-id": 78,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 78000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.200076" elapsed="0.000620"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.200849" elapsed="0.000185"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-04-17T03:18:11.198691" elapsed="0.002380"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.201525" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.201271" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.201256" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.202267" level="INFO">${j} = 79</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.201914" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.203051" level="INFO">${item} =     {
      "group-id": 79,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 79000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.202465" elapsed="0.000614"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.203232" elapsed="0.000226"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-04-17T03:18:11.201224" elapsed="0.002273"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.203939" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.203693" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.203678" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.204695" level="INFO">${j} = 80</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.204326" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.205467" level="INFO">${item} =     {
      "group-id": 80,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 80000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.204873" elapsed="0.000622"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.205647" elapsed="0.000182"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-04-17T03:18:11.203645" elapsed="0.002221"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.206277" elapsed="0.000199"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.206044" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.206029" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.207041" level="INFO">${j} = 81</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.206683" elapsed="0.000384"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.207907" level="INFO">${item} =     {
      "group-id": 81,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 81000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.207218" elapsed="0.000719"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.208091" elapsed="0.000186"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-04-17T03:18:11.206000" elapsed="0.002314"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.208755" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.208520" elapsed="0.000515"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.208499" elapsed="0.000564"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.209626" level="INFO">${j} = 82</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.209206" elapsed="0.000446"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.210435" level="INFO">${item} =     {
      "group-id": 82,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 82000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.209808" elapsed="0.000657"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.210620" elapsed="0.000186"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-04-17T03:18:11.208469" elapsed="0.002375"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.211259" elapsed="0.000249"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.211025" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.211010" elapsed="0.000562"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.212072" level="INFO">${j} = 83</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.211719" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.212841" level="INFO">${item} =     {
      "group-id": 83,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 83000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.212250" elapsed="0.000619"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.213023" elapsed="0.000182"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-04-17T03:18:11.210980" elapsed="0.002263"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.213691" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.213456" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.213430" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.214452" level="INFO">${j} = 84</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.214079" elapsed="0.000399"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.215238" level="INFO">${item} =     {
      "group-id": 84,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 84000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.214652" elapsed="0.000614"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.215450" elapsed="0.000199"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-04-17T03:18:11.213398" elapsed="0.002289"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.216282" elapsed="0.000313"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.216038" elapsed="0.000614"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.215866" elapsed="0.000821"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.217506" level="INFO">${j} = 85</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.216903" elapsed="0.000654"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.218749" level="INFO">${item} =     {
      "group-id": 85,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 85000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.217795" elapsed="0.000996"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.219018" elapsed="0.000273"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-04-17T03:18:11.215836" elapsed="0.003511"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.220045" elapsed="0.000269"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.219697" elapsed="0.000670"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.219674" elapsed="0.000732"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.220916" level="INFO">${j} = 86</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.220560" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.221706" level="INFO">${item} =     {
      "group-id": 86,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 86000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.221094" elapsed="0.000641"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.221887" elapsed="0.000184"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-04-17T03:18:11.219626" elapsed="0.002554"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.222641" elapsed="0.000194"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.222371" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.222355" elapsed="0.000541"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.223426" level="INFO">${j} = 87</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.223050" elapsed="0.000425"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.224239" level="INFO">${item} =     {
      "group-id": 87,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 87000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.223650" elapsed="0.000617"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.224446" elapsed="0.000186"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-04-17T03:18:11.222323" elapsed="0.002346"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.225085" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.224851" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.224837" elapsed="0.000493"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.225838" level="INFO">${j} = 88</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.225486" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.226617" level="INFO">${item} =     {
      "group-id": 88,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 88000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.226021" elapsed="0.000625"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.226798" elapsed="0.000183"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-04-17T03:18:11.224806" elapsed="0.002211"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.227499" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.227198" elapsed="0.000527"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.227183" elapsed="0.000572"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.228245" level="INFO">${j} = 89</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.227895" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.229015" level="INFO">${item} =     {
      "group-id": 89,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 89000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.228444" elapsed="0.000604"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.229200" elapsed="0.000197"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-04-17T03:18:11.227152" elapsed="0.002283"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.229857" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.229620" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.229605" elapsed="0.000494"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.230602" level="INFO">${j} = 90</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.230238" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.231354" level="INFO">${item} =     {
      "group-id": 90,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 90000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.230779" elapsed="0.000617"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.231567" elapsed="0.000183"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-04-17T03:18:11.229570" elapsed="0.002218"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.232234" elapsed="0.000205"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.231967" elapsed="0.000511"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.231953" elapsed="0.000549"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.233042" level="INFO">${j} = 91</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.232670" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.233853" level="INFO">${item} =     {
      "group-id": 91,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 91000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.233231" elapsed="0.000720"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.234119" elapsed="0.000201"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-04-17T03:18:11.231923" elapsed="0.002435"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.235059" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.234797" elapsed="0.000488"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.234558" elapsed="0.000751"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.235877" level="INFO">${j} = 92</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.235514" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.236648" level="INFO">${item} =     {
      "group-id": 92,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 92000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.236059" elapsed="0.000618"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.236830" elapsed="0.000185"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-04-17T03:18:11.234520" elapsed="0.002532"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.237483" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.237234" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.237219" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.238224" level="INFO">${j} = 93</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.237872" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.238989" level="INFO">${item} =     {
      "group-id": 93,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 93000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.238417" elapsed="0.000600"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.239170" elapsed="0.000182"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-04-17T03:18:11.237189" elapsed="0.002216"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.239837" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.239603" elapsed="0.000454"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.239588" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.240583" level="INFO">${j} = 94</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.240219" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.241332" level="INFO">${item} =     {
      "group-id": 94,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 94000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.240762" elapsed="0.000598"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.241528" elapsed="0.000182"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-04-17T03:18:11.239558" elapsed="0.002189"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.242159" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.241926" elapsed="0.000467"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.241912" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.242917" level="INFO">${j} = 95</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.242565" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.243726" level="INFO">${item} =     {
      "group-id": 95,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 95000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.243093" elapsed="0.000661"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.243906" elapsed="0.000182"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-04-17T03:18:11.241882" elapsed="0.002244"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.244562" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.244309" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.244294" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.245307" level="INFO">${j} = 96</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.244952" elapsed="0.000442"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.246127" level="INFO">${item} =     {
      "group-id": 96,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 96000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.245554" elapsed="0.000600"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.246309" elapsed="0.000199"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-04-17T03:18:11.244264" elapsed="0.002283"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.246960" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.246726" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.246712" elapsed="0.000493"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.247846" level="INFO">${j} = 97</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.247345" elapsed="0.000535"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.248720" level="INFO">${item} =     {
      "group-id": 97,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 97000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.248050" elapsed="0.000700"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.248904" elapsed="0.000212"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-04-17T03:18:11.246681" elapsed="0.002473"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.249605" elapsed="0.000209"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.249351" elapsed="0.000504"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.249337" elapsed="0.000543"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.250476" level="INFO">${j} = 98</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.250042" elapsed="0.000462"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.251570" level="INFO">${item} =     {
      "group-id": 98,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 98000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.250689" elapsed="0.000975"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.251825" elapsed="0.000206"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-04-17T03:18:11.249305" elapsed="0.002771"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.252687" elapsed="0.000204"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.252429" elapsed="0.000516"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.252245" elapsed="0.000743"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.253586" level="INFO">${j} = 99</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.253139" elapsed="0.000473"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.254424" level="INFO">${item} =     {
      "group-id": 99,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 99000,
            "action": [
              {
                "or...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.253786" elapsed="0.000673"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.254635" elapsed="0.000254"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-04-17T03:18:11.252214" elapsed="0.002714"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.255560" elapsed="0.000281"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.255219" elapsed="0.000695"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.255191" elapsed="0.000748"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.256491" level="INFO">${j} = 100</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.256099" elapsed="0.000433"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.257331" level="INFO">${item} =     {
      "group-id": 100,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 100000,
            "action": [
              {
                "...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.256714" elapsed="0.000646"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.257654" elapsed="0.000198"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-04-17T03:18:11.255123" elapsed="0.002767"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-04-17T03:18:10.985477" elapsed="0.272470"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.259779" level="INFO">${final_text} = {
  "flow-node-inventory:group": [
    {
      "group-id": 1,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 1000,
            "action": [
  ...</msg>
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="PASS" start="2026-04-17T03:18:11.258224" elapsed="0.001606"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:11.259895" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:18:11.260099" level="INFO">${data} = {
  "flow-node-inventory:group": [
    {
      "group-id": 1,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 1000,
            "action": [
  ...</msg>
<var>${data}</var>
<arg>folder=${folder}</arg>
<arg>name_prefix=post_</arg>
<arg>base_name=${base_name}</arg>
<arg>extension=${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>endline=${endline}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from 1, by one 100 times.
Template variable ${j} is calculated as ${i} incremented by offset 0 ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:18:10.926415" elapsed="0.333712"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:11.261738" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:11.261364" elapsed="0.000450">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-group-2/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:11.261917" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:11.260972" elapsed="0.000969"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.262308" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:11.262042" elapsed="0.000324"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.262952" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:11.262634" elapsed="0.000345"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.262407" elapsed="0.000608"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.262009" elapsed="0.001037"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.265571" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:11.263197" elapsed="0.002405"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:18:11.265672" elapsed="0.000041"/>
</return>
<msg time="2026-04-17T03:18:11.265861" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-group-2/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:18:11.260590" elapsed="0.005303"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.267726" level="INFO">/rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:11.267260" elapsed="0.000513"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.268179" level="INFO">{
  "flow-node-inventory:group": [
    {
      "group-id": 1,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 1000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 1000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-1",
      "group-type": "group-ff"
    },
    {
      "group-id": 2,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 2000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 2000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-2",
      "group-type": "group-ff"
    },
    {
      "group-id": 3,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 3000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 3000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-3",
      "group-type": "group-ff"
    },
    {
      "group-id": 4,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 4000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 4000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-4",
      "group-type": "group-ff"
    },
    {
      "group-id": 5,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 5000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 5000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-5",
      "group-type": "group-ff"
    },
    {
      "group-id": 6,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 6000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 6000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-6",
      "group-type": "group-ff"
    },
    {
      "group-id": 7,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 7000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 7000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-7",
      "group-type": "group-ff"
    },
    {
      "group-id": 8,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 8000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 8000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-8",
      "group-type": "group-ff"
    },
    {
      "group-id": 9,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 9000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 9000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-9",
      "group-type": "group-ff"
    },
    {
      "group-id": 10,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 10000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 10000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-10",
      "group-type": "group-ff"
    },
    {
      "group-id": 11,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 11000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 11000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-11",
      "group-type": "group-ff"
    },
    {
      "group-id": 12,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 12000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 12000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-12",
      "group-type": "group-ff"
    },
    {
      "group-id": 13,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 13000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 13000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-13",
      "group-type": "group-ff"
    },
    {
      "group-id": 14,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 14000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 14000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-14",
      "group-type": "group-ff"
    },
    {
      "group-id": 15,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 15000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 15000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-15",
      "group-type": "group-ff"
    },
    {
      "group-id": 16,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 16000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 16000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-16",
      "group-type": "group-ff"
    },
    {
      "group-id": 17,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 17000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 17000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-17",
      "group-type": "group-ff"
    },
    {
      "group-id": 18,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 18000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 18000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-18",
      "group-type": "group-ff"
    },
    {
      "group-id": 19,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 19000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 19000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-19",
      "group-type": "group-ff"
    },
    {
      "group-id": 20,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 20000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 20000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-20",
      "group-type": "group-ff"
    },
    {
      "group-id": 21,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 21000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 21000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-21",
      "group-type": "group-ff"
    },
    {
      "group-id": 22,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 22000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 22000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-22",
      "group-type": "group-ff"
    },
    {
      "group-id": 23,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 23000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 23000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-23",
      "group-type": "group-ff"
    },
    {
      "group-id": 24,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 24000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 24000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-24",
      "group-type": "group-ff"
    },
    {
      "group-id": 25,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 25000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 25000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-25",
      "group-type": "group-ff"
    },
    {
      "group-id": 26,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 26000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 26000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-26",
      "group-type": "group-ff"
    },
    {
      "group-id": 27,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 27000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 27000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-27",
      "group-type": "group-ff"
    },
    {
      "group-id": 28,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 28000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 28000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-28",
      "group-type": "group-ff"
    },
    {
      "group-id": 29,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 29000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 29000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-29",
      "group-type": "group-ff"
    },
    {
      "group-id": 30,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 30000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 30000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-30",
      "group-type": "group-ff"
    },
    {
      "group-id": 31,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 31000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 31000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-31",
      "group-type": "group-ff"
    },
    {
      "group-id": 32,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 32000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 32000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-32",
      "group-type": "group-ff"
    },
    {
      "group-id": 33,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 33000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 33000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-33",
      "group-type": "group-ff"
    },
    {
      "group-id": 34,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 34000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 34000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-34",
      "group-type": "group-ff"
    },
    {
      "group-id": 35,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 35000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 35000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-35",
      "group-type": "group-ff"
    },
    {
      "group-id": 36,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 36000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 36000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-36",
      "group-type": "group-ff"
    },
    {
      "group-id": 37,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 37000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 37000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-37",
      "group-type": "group-ff"
    },
    {
      "group-id": 38,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 38000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 38000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-38",
      "group-type": "group-ff"
    },
    {
      "group-id": 39,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 39000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 39000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-39",
      "group-type": "group-ff"
    },
    {
      "group-id": 40,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 40000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 40000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-40",
      "group-type": "group-ff"
    },
    {
      "group-id": 41,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 41000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 41000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-41",
      "group-type": "group-ff"
    },
    {
      "group-id": 42,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 42000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 42000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-42",
      "group-type": "group-ff"
    },
    {
      "group-id": 43,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 43000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 43000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-43",
      "group-type": "group-ff"
    },
    {
      "group-id": 44,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 44000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 44000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-44",
      "group-type": "group-ff"
    },
    {
      "group-id": 45,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 45000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 45000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-45",
      "group-type": "group-ff"
    },
    {
      "group-id": 46,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 46000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 46000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-46",
      "group-type": "group-ff"
    },
    {
      "group-id": 47,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 47000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 47000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-47",
      "group-type": "group-ff"
    },
    {
      "group-id": 48,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 48000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 48000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-48",
      "group-type": "group-ff"
    },
    {
      "group-id": 49,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 49000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 49000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-49",
      "group-type": "group-ff"
    },
    {
      "group-id": 50,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 50000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 50000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-50",
      "group-type": "group-ff"
    },
    {
      "group-id": 51,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 51000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 51000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-51",
      "group-type": "group-ff"
    },
    {
      "group-id": 52,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 52000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 52000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-52",
      "group-type": "group-ff"
    },
    {
      "group-id": 53,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 53000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 53000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-53",
      "group-type": "group-ff"
    },
    {
      "group-id": 54,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 54000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 54000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-54",
      "group-type": "group-ff"
    },
    {
      "group-id": 55,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 55000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 55000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-55",
      "group-type": "group-ff"
    },
    {
      "group-id": 56,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 56000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 56000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-56",
      "group-type": "group-ff"
    },
    {
      "group-id": 57,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 57000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 57000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-57",
      "group-type": "group-ff"
    },
    {
      "group-id": 58,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 58000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 58000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-58",
      "group-type": "group-ff"
    },
    {
      "group-id": 59,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 59000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 59000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-59",
      "group-type": "group-ff"
    },
    {
      "group-id": 60,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 60000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 60000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-60",
      "group-type": "group-ff"
    },
    {
      "group-id": 61,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 61000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 61000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-61",
      "group-type": "group-ff"
    },
    {
      "group-id": 62,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 62000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 62000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-62",
      "group-type": "group-ff"
    },
    {
      "group-id": 63,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 63000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 63000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-63",
      "group-type": "group-ff"
    },
    {
      "group-id": 64,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 64000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 64000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-64",
      "group-type": "group-ff"
    },
    {
      "group-id": 65,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 65000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 65000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-65",
      "group-type": "group-ff"
    },
    {
      "group-id": 66,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 66000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 66000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-66",
      "group-type": "group-ff"
    },
    {
      "group-id": 67,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 67000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 67000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-67",
      "group-type": "group-ff"
    },
    {
      "group-id": 68,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 68000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 68000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-68",
      "group-type": "group-ff"
    },
    {
      "group-id": 69,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 69000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 69000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-69",
      "group-type": "group-ff"
    },
    {
      "group-id": 70,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 70000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 70000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-70",
      "group-type": "group-ff"
    },
    {
      "group-id": 71,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 71000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 71000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-71",
      "group-type": "group-ff"
    },
    {
      "group-id": 72,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 72000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 72000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-72",
      "group-type": "group-ff"
    },
    {
      "group-id": 73,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 73000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 73000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-73",
      "group-type": "group-ff"
    },
    {
      "group-id": 74,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 74000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 74000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-74",
      "group-type": "group-ff"
    },
    {
      "group-id": 75,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 75000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 75000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-75",
      "group-type": "group-ff"
    },
    {
      "group-id": 76,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 76000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 76000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-76",
      "group-type": "group-ff"
    },
    {
      "group-id": 77,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 77000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 77000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-77",
      "group-type": "group-ff"
    },
    {
      "group-id": 78,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 78000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 78000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-78",
      "group-type": "group-ff"
    },
    {
      "group-id": 79,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 79000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 79000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-79",
      "group-type": "group-ff"
    },
    {
      "group-id": 80,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 80000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 80000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-80",
      "group-type": "group-ff"
    },
    {
      "group-id": 81,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 81000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 81000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-81",
      "group-type": "group-ff"
    },
    {
      "group-id": 82,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 82000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 82000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-82",
      "group-type": "group-ff"
    },
    {
      "group-id": 83,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 83000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 83000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-83",
      "group-type": "group-ff"
    },
    {
      "group-id": 84,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 84000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 84000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-84",
      "group-type": "group-ff"
    },
    {
      "group-id": 85,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 85000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 85000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-85",
      "group-type": "group-ff"
    },
    {
      "group-id": 86,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 86000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 86000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-86",
      "group-type": "group-ff"
    },
    {
      "group-id": 87,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 87000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 87000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-87",
      "group-type": "group-ff"
    },
    {
      "group-id": 88,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 88000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 88000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-88",
      "group-type": "group-ff"
    },
    {
      "group-id": 89,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 89000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 89000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-89",
      "group-type": "group-ff"
    },
    {
      "group-id": 90,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 90000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 90000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-90",
      "group-type": "group-ff"
    },
    {
      "group-id": 91,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 91000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 91000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-91",
      "group-type": "group-ff"
    },
    {
      "group-id": 92,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 92000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 92000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-92",
      "group-type": "group-ff"
    },
    {
      "group-id": 93,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 93000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 93000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-93",
      "group-type": "group-ff"
    },
    {
      "group-id": 94,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 94000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 94000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-94",
      "group-type": "group-ff"
    },
    {
      "group-id": 95,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 95000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 95000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-95",
      "group-type": "group-ff"
    },
    {
      "group-id": 96,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 96000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 96000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-96",
      "group-type": "group-ff"
    },
    {
      "group-id": 97,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 97000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 97000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-97",
      "group-type": "group-ff"
    },
    {
      "group-id": 98,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 98000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 98000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-98",
      "group-type": "group-ff"
    },
    {
      "group-id": 99,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 99000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 99000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-99",
      "group-type": "group-ff"
    },
    {
      "group-id": 100,
      "buckets": {
        "bucket": [
          {
            "bucket-id": 1,
            "watch_group": 100000,
            "action": [
              {
                "order": 1,
                "group-action": {
                  "group-id": 100000
                }
              }
            ]
          }
        ]
      },
      "group-name": "FF-100",
      "group-type": "group-ff"
    }
  ]
}</msg>
<arg>${data}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:11.267935" elapsed="0.000751"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.269155" level="INFO">{'Content-Type': 'application/json'}</msg>
<arg>${content_type}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:11.268873" elapsed="0.000327"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.269667" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:11.269360" elapsed="0.000351"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-04-17T03:18:11.270666" level="INFO">${accumulator} = {'Content-Type': 'application/json'}</msg>
<var>${accumulator}</var>
<arg>${first}</arg>
<doc>Returns a copy of the given dictionary.</doc>
<status status="PASS" start="2026-04-17T03:18:11.270434" elapsed="0.000259"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-04-17T03:18:11.271075" level="INFO">${items_to_add} = []</msg>
<var>${items_to_add}</var>
<arg>${second}</arg>
<doc>Returns items of the given ``dictionary`` as a list.</doc>
<status status="PASS" start="2026-04-17T03:18:11.270878" elapsed="0.000223"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${accumulator}</arg>
<arg>@{items_to_add}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.271282" elapsed="0.000274"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.272007" level="INFO">{'Content-Type': 'application/json'}</msg>
<arg>${accumulator}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:11.271732" elapsed="0.000319"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-04-17T03:18:11.272105" elapsed="0.000044"/>
</return>
<msg time="2026-04-17T03:18:11.272299" level="INFO">${headers} = {'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>first=${content_type}</arg>
<arg>second=${accept}</arg>
<doc>Take two dicts, join them, return result. Second argument values take precedence.</doc>
<status status="PASS" start="2026-04-17T03:18:11.269952" elapsed="0.002372"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:11.278187" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:11.479835" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:11.882903" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:11.885478" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>${uri}</arg>
<arg>data=${data}</arg>
<arg>headers=${headers}</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:11.275097" elapsed="0.615825">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:18:11.272630" elapsed="0.618517">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="POST On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>${uri}</arg>
<arg>data=${data}</arg>
<arg>headers=${headers}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.891698" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:11.891235" elapsed="0.000621"/>
</branch>
<status status="FAIL" start="2026-04-17T03:18:11.272398" elapsed="0.619566">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.892639" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:11.892794" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:11.892751" elapsed="0.000088"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:11.892730" elapsed="0.000130"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.893011" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:18:11.893077" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>data=${data}</arg>
<arg>content_type=${content_type}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<arg>http_timeout=${http_timeout}</arg>
<doc>POST data to given URI, check status code and return response text.
${content_type} and ${accept} are mandatory Python objects with headers to use.
If ${normalize_json}, normalize text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:18:11.266290" elapsed="0.626902">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:11.893335" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>extension=json</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>content_type=${HEADERS_YANG_JSON}</arg>
<arg>mapping=${mapping}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>endline=${\n}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve URI and data from folder, call Post_To_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.840894" elapsed="1.052558">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=response</arg>
<arg>mapping=${mapping}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.893760" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:11.893571" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:11.893554" elapsed="0.000296"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:11.893883" elapsed="0.000014"/>
</return>
<arg>folder=${VAR_DIR}/add-group-2</arg>
<arg>mapping=${mapping}</arg>
<arg>session=session</arg>
<arg>iterations=${iter}</arg>
<doc>Add arguments sensible for JSON data, return Post_Templated response text.
Optionally, verification against response.json (no iteration) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.
Response status code must be one of values from ${explicit_status_codes} if specified or one of set
created from all positive HTTP status codes together with ${additional_allowed_status_codes}.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.838071" elapsed="1.055911">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:18:10.824704" elapsed="1.069348">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:18:10.820943" elapsed="1.073171">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<doc>Add 100 groups of type 2 in every switch.</doc>
<status status="FAIL" start="2026-04-17T03:18:10.820326" elapsed="1.073963">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t3" name="Add Flow to Group 2 In Every Switch" line="46">
<for flavor="IN RANGE">
<iter>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.897889" level="INFO">&amp;{mapping} = { NODE=openflow:1 }</msg>
<var>&amp;{mapping}</var>
<arg>NODE=openflow:${switch}</arg>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.897404" elapsed="0.000515"/>
</kw>
<kw name="Post_As_Json_Templated" owner="TemplatedRequests">
<kw name="Post_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.941168" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:11.940712" elapsed="0.000492"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:11.942050" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:11.941766" elapsed="0.000375">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:11.942244" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:11.941401" elapsed="0.000869"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.942892" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:11.942475" elapsed="0.000459"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:11.943301" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:11.943520" level="INFO">${template} = /rests/data/opendaylight-inventory:nodes/node=$NODE/flow-node-inventory:table=0
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:11.943139" elapsed="0.000409"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.944054" level="INFO">/rests/data/opendaylight-inventory:nodes/node=$NODE/flow-node-inventory:table=0
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:11.943720" elapsed="0.000455"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.945262" level="INFO">mapping: {'NODE': 'openflow:1'}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:11.944990" elapsed="0.000320"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.945779" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.945494" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.946571" level="INFO">${value} = openflow:1</msg>
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="PASS" start="2026-04-17T03:18:11.946184" elapsed="0.000414"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<kw name="Replace String Using Regexp" owner="String">
<msg time="2026-04-17T03:18:11.947779" level="INFO">${encoded} = openflow%3A1</msg>
<var>${encoded}</var>
<arg>${value}</arg>
<arg>:</arg>
<arg>%3A</arg>
<doc>Replaces ``pattern`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.947146" elapsed="0.000663"/>
</kw>
<return>
<value>${encoded}</value>
<status status="PASS" start="2026-04-17T03:18:11.947865" elapsed="0.000053"/>
</return>
<msg time="2026-04-17T03:18:11.948057" level="INFO">${encoded_value} = openflow%3A1</msg>
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="PASS" start="2026-04-17T03:18:11.946793" elapsed="0.001290"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="PASS" start="2026-04-17T03:18:11.948244" elapsed="0.000320"/>
</kw>
<var name="${key}">NODE</var>
<var name="${value}">openflow:1</var>
<status status="PASS" start="2026-04-17T03:18:11.946041" elapsed="0.002566"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="PASS" start="2026-04-17T03:18:11.945861" elapsed="0.002784"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:18:11.948688" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:18:11.948849" level="INFO">${mapping_to_use} = {'NODE': 'openflow%3A1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:18:11.944652" elapsed="0.004224"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:11.944278" elapsed="0.004631"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.949092" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:11.948936" elapsed="0.000215"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:11.944248" elapsed="0.004925"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:11.949907" level="INFO">${final_text} = /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:11.949319" elapsed="0.000617"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:11.949986" elapsed="0.000030"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:11.940030" elapsed="0.010085"/>
</kw>
<msg time="2026-04-17T03:18:11.950171" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:18:11.927136" elapsed="0.023086"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.963210" elapsed="0.000036"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.975599" elapsed="0.000029"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.987648" elapsed="0.000029"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.987915" elapsed="0.000064"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.988143" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.988559" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:11.988404" elapsed="0.000213"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:11.988372" elapsed="0.000283"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.988833" elapsed="0.000023"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.989007" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.989177" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:18:11.988335" elapsed="0.000897"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:18:11.988224" elapsed="0.001036"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:11.989431" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:11.989512" elapsed="0.000017"/>
</return>
<msg time="2026-04-17T03:18:11.989648" level="INFO">${uri} = /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from 1, by one 100 times.
Template variable ${j} is calculated as ${i} incremented by offset 0 ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:18:11.922969" elapsed="0.066712"/>
</kw>
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:18:12.000336" elapsed="0.000403"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.014791" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/post_data.prolog.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:12.014397" elapsed="0.000423"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:12.015584" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/post_data.prolog.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:12.015322" elapsed="0.000337">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/post_data.prolog.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:12.015752" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:12.014982" elapsed="0.000795"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.016348" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/post_data.prolog.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:12.015952" elapsed="0.000424"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:12.016694" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/post_data.prolog.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/post_data.prolog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:12.016854" level="INFO">${template} = {
  "flow": [
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:12.016552" elapsed="0.000327"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.017280" level="INFO">{
  "flow": [
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:12.017033" elapsed="0.000293"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:12.017717" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:12.017411" elapsed="0.000365"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.018239" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:12.017945" elapsed="0.000320"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.017801" elapsed="0.000500"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.017376" elapsed="0.000984"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.018967" level="INFO">${final_text} = {
  "flow": [</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.018524" elapsed="0.000469"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:12.019043" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:18:12.019197" level="INFO">${prolog} = {
  "flow": [</msg>
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:12.013758" elapsed="0.005464"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.032292" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/post_data.epilog.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:12.031856" elapsed="0.000466"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:12.033095" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/post_data.epilog.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:12.032851" elapsed="0.000316">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/post_data.epilog.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:12.033260" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:12.032509" elapsed="0.000775"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.033846" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/post_data.epilog.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:12.033462" elapsed="0.000411"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:12.034171" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/post_data.epilog.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/post_data.epilog.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:12.034326" level="INFO">${template} =   ]
}
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:12.034032" elapsed="0.000319"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.034769" level="INFO">  ]
}
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:12.034520" elapsed="0.000293"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:12.035246" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:12.034887" elapsed="0.000437"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.035856" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:12.035545" elapsed="0.000338"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.035359" elapsed="0.000559"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.034866" elapsed="0.001074"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.036582" level="INFO">${final_text} =   ]
}</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.036125" elapsed="0.000484"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:12.036659" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:18:12.036815" level="INFO">${epilog} =   ]
}</msg>
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:12.031167" elapsed="0.005673"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.050102" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/data.item.json</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:12.049660" elapsed="0.000475"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:12.050932" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/data.item.json' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:12.050676" elapsed="0.000411">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow.vanadium/data.item.json' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:12.051184" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:12.050310" elapsed="0.000899"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.051779" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/data.item.json</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:12.051373" elapsed="0.000433"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:18:12.052158" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/data.item.json"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/data.item.json&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:18:12.052323" level="INFO">${template} =         {
          "id": "${i}",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048...</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:18:12.052010" elapsed="0.000340"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.052772" level="INFO">        {
          "id": "${i}",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.${i}/32"
          },
          "flow-name": "Flow-${i}",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": ${i}
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:12.052523" elapsed="0.000300"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="NOT RUN" start="2026-04-17T03:18:12.053273" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:12.052908" elapsed="0.000425"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.053818" level="INFO">${mapping_to_use} = {'NODE': 'openflow:1'}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:12.053521" elapsed="0.000324"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.053359" elapsed="0.000522"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.052882" elapsed="0.001021"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.054699" level="INFO">${final_text} =         {
          "id": "${i}",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048...</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.054054" elapsed="0.000674"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:12.054781" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:18:12.054943" level="INFO">${item_template} =         {
          "id": "${i}",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048...</msg>
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:18:12.048899" elapsed="0.006071"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.055394" level="INFO">${items} = []</msg>
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:18:12.055134" elapsed="0.000288"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.055992" level="INFO">${separator} = ,
</msg>
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:12.055580" elapsed="0.000440"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:12.056700" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:12.056435" elapsed="0.000325"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.056420" elapsed="0.000364"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.057285" level="INFO">${j} = 1</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.056929" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.058294" level="INFO">${item} =         {
          "id": "1",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.057480" elapsed="0.000843"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.058505" elapsed="0.000205"/>
</kw>
<var name="${iteration}">1</var>
<status status="PASS" start="2026-04-17T03:18:12.056371" elapsed="0.002409"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.059205" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.058968" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.058953" elapsed="0.000523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.059997" level="INFO">${j} = 2</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.059617" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.060800" level="INFO">${item} =         {
          "id": "2",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.060179" elapsed="0.000649"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.060981" elapsed="0.000187"/>
</kw>
<var name="${iteration}">2</var>
<status status="PASS" start="2026-04-17T03:18:12.058923" elapsed="0.002283"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.061646" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.061402" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.061369" elapsed="0.000526"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.062409" level="INFO">${j} = 3</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.062037" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.063196" level="INFO">${item} =         {
          "id": "3",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.062593" elapsed="0.000631"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.063378" elapsed="0.000202"/>
</kw>
<var name="${iteration}">3</var>
<status status="PASS" start="2026-04-17T03:18:12.061339" elapsed="0.002280"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.064124" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.063850" elapsed="0.000501"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.063835" elapsed="0.000540"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.064893" level="INFO">${j} = 4</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.064538" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.065694" level="INFO">${item} =         {
          "id": "4",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.065071" elapsed="0.000650"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.065873" elapsed="0.000183"/>
</kw>
<var name="${iteration}">4</var>
<status status="PASS" start="2026-04-17T03:18:12.063801" elapsed="0.002292"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.066580" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.066312" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.066292" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.067420" level="INFO">${j} = 5</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.066969" elapsed="0.000487"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.068418" level="INFO">${item} =         {
          "id": "5",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.067676" elapsed="0.000771"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.068605" elapsed="0.000186"/>
</kw>
<var name="${iteration}">5</var>
<status status="PASS" start="2026-04-17T03:18:12.066251" elapsed="0.002577"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.069246" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.069008" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.068993" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.070003" level="INFO">${j} = 6</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.069650" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.070804" level="INFO">${item} =         {
          "id": "6",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.070180" elapsed="0.000690"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.071028" elapsed="0.000184"/>
</kw>
<var name="${iteration}">6</var>
<status status="PASS" start="2026-04-17T03:18:12.068963" elapsed="0.002286"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.071679" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.071444" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.071429" elapsed="0.000496"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.072525" level="INFO">${j} = 7</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.072100" elapsed="0.000454"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.073337" level="INFO">${item} =         {
          "id": "7",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.072725" elapsed="0.000639"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.073535" elapsed="0.000190"/>
</kw>
<var name="${iteration}">7</var>
<status status="PASS" start="2026-04-17T03:18:12.071398" elapsed="0.002364"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.074181" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.073941" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.073926" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.074944" level="INFO">${j} = 8</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.074593" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.075883" level="INFO">${item} =         {
          "id": "8",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.075123" elapsed="0.000789"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.076080" elapsed="0.000186"/>
</kw>
<var name="${iteration}">8</var>
<status status="PASS" start="2026-04-17T03:18:12.073896" elapsed="0.002408"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.076739" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.076503" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.076488" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.077563" level="INFO">${j} = 9</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.077183" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.078346" level="INFO">${item} =         {
          "id": "9",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
  ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.077746" elapsed="0.000628"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.078545" elapsed="0.000183"/>
</kw>
<var name="${iteration}">9</var>
<status status="PASS" start="2026-04-17T03:18:12.076457" elapsed="0.002308"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.079177" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.078943" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.078928" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.079933" level="INFO">${j} = 10</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.079581" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.080777" level="INFO">${item} =         {
          "id": "10",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.080147" elapsed="0.000658"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.080959" elapsed="0.000182"/>
</kw>
<var name="${iteration}">10</var>
<status status="PASS" start="2026-04-17T03:18:12.078898" elapsed="0.002280"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.081608" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.081355" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.081340" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.082350" level="INFO">${j} = 11</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.082000" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.083247" level="INFO">${item} =         {
          "id": "11",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.082584" elapsed="0.000692"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.083452" elapsed="0.000195"/>
</kw>
<var name="${iteration}">11</var>
<status status="PASS" start="2026-04-17T03:18:12.081310" elapsed="0.002376"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.084149" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.083867" elapsed="0.000509"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.083852" elapsed="0.000565"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.084914" level="INFO">${j} = 12</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.084560" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.085777" level="INFO">${item} =         {
          "id": "12",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.085094" elapsed="0.000712"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.085963" elapsed="0.000183"/>
</kw>
<var name="${iteration}">12</var>
<status status="PASS" start="2026-04-17T03:18:12.083821" elapsed="0.002362"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.086615" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.086362" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.086347" elapsed="0.000512"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.087367" level="INFO">${j} = 13</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.087006" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.088204" level="INFO">${item} =         {
          "id": "13",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.087563" elapsed="0.000670"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.088402" elapsed="0.000236"/>
</kw>
<var name="${iteration}">13</var>
<status status="PASS" start="2026-04-17T03:18:12.086317" elapsed="0.002364"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.089107" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.088867" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.088852" elapsed="0.000501"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.089860" level="INFO">${j} = 14</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.089510" elapsed="0.000376"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.090703" level="INFO">${item} =         {
          "id": "14",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.090066" elapsed="0.000666"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.090885" elapsed="0.000182"/>
</kw>
<var name="${iteration}">14</var>
<status status="PASS" start="2026-04-17T03:18:12.088816" elapsed="0.002288"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.091541" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.091287" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.091272" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.092519" level="INFO">${j} = 15</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.091936" elapsed="0.000611"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.093322" level="INFO">${item} =         {
          "id": "15",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.092715" elapsed="0.000636"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.093521" elapsed="0.000185"/>
</kw>
<var name="${iteration}">15</var>
<status status="PASS" start="2026-04-17T03:18:12.091241" elapsed="0.002501"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.094193" elapsed="0.000204"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.093922" elapsed="0.000521"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.093908" elapsed="0.000559"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.094965" level="INFO">${j} = 16</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.094612" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.095812" level="INFO">${item} =         {
          "id": "16",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.095144" elapsed="0.000696"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.096025" elapsed="0.000188"/>
</kw>
<var name="${iteration}">16</var>
<status status="PASS" start="2026-04-17T03:18:12.093878" elapsed="0.002372"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.096685" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.096447" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.096432" elapsed="0.000499"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.097444" level="INFO">${j} = 17</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.097071" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.098223" level="INFO">${item} =         {
          "id": "17",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.097623" elapsed="0.000628"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.098421" elapsed="0.000184"/>
</kw>
<var name="${iteration}">17</var>
<status status="PASS" start="2026-04-17T03:18:12.096400" elapsed="0.002242"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.099060" elapsed="0.000238"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.098821" elapsed="0.000526"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.098807" elapsed="0.000589"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.099917" level="INFO">${j} = 18</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.099559" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.100745" level="INFO">${item} =         {
          "id": "18",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.100117" elapsed="0.000656"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.100927" elapsed="0.000180"/>
</kw>
<var name="${iteration}">18</var>
<status status="PASS" start="2026-04-17T03:18:12.098776" elapsed="0.002368"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.101579" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.101322" elapsed="0.000479"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.101308" elapsed="0.000516"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.102315" level="INFO">${j} = 19</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.101963" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.103105" level="INFO">${item} =         {
          "id": "19",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.102507" elapsed="0.000626"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.103284" elapsed="0.000203"/>
</kw>
<var name="${iteration}">19</var>
<status status="PASS" start="2026-04-17T03:18:12.101278" elapsed="0.002246"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.103935" elapsed="0.000211"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.103702" elapsed="0.000482"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.103688" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.104750" level="INFO">${j} = 20</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.104353" elapsed="0.000426"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.105559" level="INFO">${item} =         {
          "id": "20",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.104933" elapsed="0.000655"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.105775" elapsed="0.000184"/>
</kw>
<var name="${iteration}">20</var>
<status status="PASS" start="2026-04-17T03:18:12.103657" elapsed="0.002339"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.106426" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.106176" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.106161" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.107166" level="INFO">${j} = 21</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.106815" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.107986" level="INFO">${item} =         {
          "id": "21",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.107345" elapsed="0.000700"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.108207" elapsed="0.000211"/>
</kw>
<var name="${iteration}">21</var>
<status status="PASS" start="2026-04-17T03:18:12.106130" elapsed="0.002327"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.108911" elapsed="0.000347"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.108642" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.108628" elapsed="0.000696"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.109859" level="INFO">${j} = 22</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.109490" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.110665" level="INFO">${item} =         {
          "id": "22",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.110041" elapsed="0.000652"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.110848" elapsed="0.000191"/>
</kw>
<var name="${iteration}">22</var>
<status status="PASS" start="2026-04-17T03:18:12.108597" elapsed="0.002489"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.111545" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.111288" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.111271" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.112403" level="INFO">${j} = 23</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.111937" elapsed="0.000496"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.113215" level="INFO">${item} =         {
          "id": "23",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.112595" elapsed="0.000648"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.113422" elapsed="0.000190"/>
</kw>
<var name="${iteration}">23</var>
<status status="PASS" start="2026-04-17T03:18:12.111233" elapsed="0.002418"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.114085" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.113839" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.113823" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.114875" level="INFO">${j} = 24</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.114510" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.115685" level="INFO">${item} =         {
          "id": "24",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.115058" elapsed="0.000656"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.115871" elapsed="0.000255"/>
</kw>
<var name="${iteration}">24</var>
<status status="PASS" start="2026-04-17T03:18:12.113791" elapsed="0.002378"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.116624" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.116359" elapsed="0.000488"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.116338" elapsed="0.000533"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.117369" level="INFO">${j} = 25</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.117014" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.118205" level="INFO">${item} =         {
          "id": "25",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.117602" elapsed="0.000631"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.118402" elapsed="0.000186"/>
</kw>
<var name="${iteration}">25</var>
<status status="PASS" start="2026-04-17T03:18:12.116307" elapsed="0.002319"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.119040" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.118806" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.118791" elapsed="0.000491"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.119788" level="INFO">${j} = 26</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.119436" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.120769" level="INFO">${item} =         {
          "id": "26",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.119967" elapsed="0.000842"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.121025" elapsed="0.000254"/>
</kw>
<var name="${iteration}">26</var>
<status status="PASS" start="2026-04-17T03:18:12.118761" elapsed="0.002570"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.121930" elapsed="0.000254"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.121604" elapsed="0.000632"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.121584" elapsed="0.000684"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.123039" level="INFO">${j} = 27</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.122487" elapsed="0.000594"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.124214" level="INFO">${item} =         {
          "id": "27",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.123306" elapsed="0.000948"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.124495" elapsed="0.000260"/>
</kw>
<var name="${iteration}">27</var>
<status status="PASS" start="2026-04-17T03:18:12.121542" elapsed="0.003265"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.125434" elapsed="0.000263"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.125073" elapsed="0.000677"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.125048" elapsed="0.000734"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.126496" level="INFO">${j} = 28</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.125977" elapsed="0.000556"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.127632" level="INFO">${item} =         {
          "id": "28",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.126743" elapsed="0.000928"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.127882" elapsed="0.000347"/>
</kw>
<var name="${iteration}">28</var>
<status status="PASS" start="2026-04-17T03:18:12.125004" elapsed="0.003280"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.129063" elapsed="0.000260"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.128529" elapsed="0.000834"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.128514" elapsed="0.000890"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.130095" level="INFO">${j} = 29</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.129568" elapsed="0.000555"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.130932" level="INFO">${item} =         {
          "id": "29",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.130281" elapsed="0.000687"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.131153" elapsed="0.000257"/>
</kw>
<var name="${iteration}">29</var>
<status status="PASS" start="2026-04-17T03:18:12.128483" elapsed="0.002969"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.131879" elapsed="0.000208"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.131640" elapsed="0.000528"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.131625" elapsed="0.000570"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.132717" level="INFO">${j} = 30</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.132340" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.133510" level="INFO">${item} =         {
          "id": "30",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.132896" elapsed="0.000642"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.133690" elapsed="0.000182"/>
</kw>
<var name="${iteration}">30</var>
<status status="PASS" start="2026-04-17T03:18:12.131593" elapsed="0.002316"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.134328" elapsed="0.000206"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.134086" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.134072" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.135087" level="INFO">${j} = 31</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.134735" elapsed="0.000379"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.136123" level="INFO">${item} =         {
          "id": "31",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.135266" elapsed="0.000892"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.136320" elapsed="0.000208"/>
</kw>
<var name="${iteration}">31</var>
<status status="PASS" start="2026-04-17T03:18:12.134042" elapsed="0.002524"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.136986" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.136751" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.136736" elapsed="0.000493"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.137736" level="INFO">${j} = 32</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.137368" elapsed="0.000394"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.138533" level="INFO">${item} =         {
          "id": "32",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.137914" elapsed="0.000647"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.138715" elapsed="0.000183"/>
</kw>
<var name="${iteration}">32</var>
<status status="PASS" start="2026-04-17T03:18:12.136706" elapsed="0.002237"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.139407" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.139150" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.139135" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.140177" level="INFO">${j} = 33</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.139803" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.141010" level="INFO">${item} =         {
          "id": "33",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.140355" elapsed="0.000683"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.141190" elapsed="0.000183"/>
</kw>
<var name="${iteration}">33</var>
<status status="PASS" start="2026-04-17T03:18:12.139103" elapsed="0.002323"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.141847" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.141613" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.141598" elapsed="0.000491"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.142603" level="INFO">${j} = 34</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.142233" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.143407" level="INFO">${item} =         {
          "id": "34",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.142780" elapsed="0.000657"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.143590" elapsed="0.000183"/>
</kw>
<var name="${iteration}">34</var>
<status status="PASS" start="2026-04-17T03:18:12.141562" elapsed="0.002288"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.144315" elapsed="0.000212"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.144075" elapsed="0.000496"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.144057" elapsed="0.000539"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.145296" level="INFO">${j} = 35</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.144738" elapsed="0.000584"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.146103" level="INFO">${item} =         {
          "id": "35",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.145493" elapsed="0.000639"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.146287" elapsed="0.000199"/>
</kw>
<var name="${iteration}">35</var>
<status status="PASS" start="2026-04-17T03:18:12.143985" elapsed="0.002539"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.147096" elapsed="0.000391"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.146824" elapsed="0.000702"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.146693" elapsed="0.000858"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.148087" level="INFO">${j} = 36</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.147694" elapsed="0.000420"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.148892" level="INFO">${item} =         {
          "id": "36",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.148269" elapsed="0.000651"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.149075" elapsed="0.000293"/>
</kw>
<var name="${iteration}">36</var>
<status status="PASS" start="2026-04-17T03:18:12.146663" elapsed="0.002757"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.149837" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.149601" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.149587" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.150647" level="INFO">${j} = 37</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.150222" elapsed="0.000452"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.151495" level="INFO">${item} =         {
          "id": "37",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.150828" elapsed="0.000696"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.151677" elapsed="0.000184"/>
</kw>
<var name="${iteration}">37</var>
<status status="PASS" start="2026-04-17T03:18:12.149557" elapsed="0.002341"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.152363" elapsed="0.000201"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.152125" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.152111" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.153154" level="INFO">${j} = 38</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.152785" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.153969" level="INFO">${item} =         {
          "id": "38",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.153333" elapsed="0.000666"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.154151" elapsed="0.000185"/>
</kw>
<var name="${iteration}">38</var>
<status status="PASS" start="2026-04-17T03:18:12.152077" elapsed="0.002296"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.154810" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.154570" elapsed="0.000464"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.154555" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.155593" level="INFO">${j} = 39</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.155217" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.156440" level="INFO">${item} =         {
          "id": "39",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.155772" elapsed="0.000739"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.156669" elapsed="0.000185"/>
</kw>
<var name="${iteration}">39</var>
<status status="PASS" start="2026-04-17T03:18:12.154524" elapsed="0.002368"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.157307" elapsed="0.000209"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.157071" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.157056" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.158072" level="INFO">${j} = 40</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.157717" elapsed="0.000381"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.158873" level="INFO">${item} =         {
          "id": "40",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.158251" elapsed="0.000651"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.159061" elapsed="0.000189"/>
</kw>
<var name="${iteration}">40</var>
<status status="PASS" start="2026-04-17T03:18:12.157026" elapsed="0.002262"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.159722" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.159485" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.159470" elapsed="0.000497"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.160529" level="INFO">${j} = 41</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.160142" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.161323" level="INFO">${item} =         {
          "id": "41",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.160710" elapsed="0.000642"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.161523" elapsed="0.000186"/>
</kw>
<var name="${iteration}">41</var>
<status status="PASS" start="2026-04-17T03:18:12.159438" elapsed="0.002308"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.162173" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.161931" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.161915" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.162938" level="INFO">${j} = 42</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.162579" elapsed="0.000386"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.163978" level="INFO">${item} =         {
          "id": "42",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.163149" elapsed="0.000866"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.164240" elapsed="0.000221"/>
</kw>
<var name="${iteration}">42</var>
<status status="PASS" start="2026-04-17T03:18:12.161885" elapsed="0.002616"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.165036" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.164792" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.164666" elapsed="0.000616"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.165800" level="INFO">${j} = 43</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.165440" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.166609" level="INFO">${item} =         {
          "id": "43",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.165981" elapsed="0.000656"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.166794" elapsed="0.000186"/>
</kw>
<var name="${iteration}">43</var>
<status status="PASS" start="2026-04-17T03:18:12.164635" elapsed="0.002383"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.167468" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.167209" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.167195" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.168253" level="INFO">${j} = 44</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.167858" elapsed="0.000457"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.169099" level="INFO">${item} =         {
          "id": "44",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.168491" elapsed="0.000637"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.169283" elapsed="0.000202"/>
</kw>
<var name="${iteration}">44</var>
<status status="PASS" start="2026-04-17T03:18:12.167163" elapsed="0.002360"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.169940" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.169702" elapsed="0.000460"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.169688" elapsed="0.000498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.170705" level="INFO">${j} = 45</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.170327" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.171531" level="INFO">${item} =         {
          "id": "45",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.170887" elapsed="0.000674"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.171716" elapsed="0.000184"/>
</kw>
<var name="${iteration}">45</var>
<status status="PASS" start="2026-04-17T03:18:12.169657" elapsed="0.002280"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.172399" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.172141" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.172126" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.173143" level="INFO">${j} = 46</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.172788" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.173959" level="INFO">${item} =         {
          "id": "46",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.173320" elapsed="0.000668"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.174141" elapsed="0.000183"/>
</kw>
<var name="${iteration}">46</var>
<status status="PASS" start="2026-04-17T03:18:12.172095" elapsed="0.002267"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.174798" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.174559" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.174544" elapsed="0.000504"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.175670" level="INFO">${j} = 47</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.175214" elapsed="0.000484"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.176541" level="INFO">${item} =         {
          "id": "47",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.175858" elapsed="0.000712"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.176725" elapsed="0.000187"/>
</kw>
<var name="${iteration}">47</var>
<status status="PASS" start="2026-04-17T03:18:12.174513" elapsed="0.002436"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.177373" elapsed="0.000203"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.177136" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.177113" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.178142" level="INFO">${j} = 48</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.177783" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.179013" level="INFO">${item} =         {
          "id": "48",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.178337" elapsed="0.000707"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.179208" elapsed="0.000206"/>
</kw>
<var name="${iteration}">48</var>
<status status="PASS" start="2026-04-17T03:18:12.177083" elapsed="0.002380"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.179994" elapsed="0.000221"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.179685" elapsed="0.000570"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.179669" elapsed="0.000610"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.180803" level="INFO">${j} = 49</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.180439" elapsed="0.000390"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.181625" level="INFO">${item} =         {
          "id": "49",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.180984" elapsed="0.000670"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.181810" elapsed="0.000185"/>
</kw>
<var name="${iteration}">49</var>
<status status="PASS" start="2026-04-17T03:18:12.179634" elapsed="0.002398"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.182586" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.182320" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.182195" elapsed="0.000641"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.183351" level="INFO">${j} = 50</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.182978" elapsed="0.000401"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.184187" level="INFO">${item} =         {
          "id": "50",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.183555" elapsed="0.000661"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.184425" elapsed="0.000195"/>
</kw>
<var name="${iteration}">50</var>
<status status="PASS" start="2026-04-17T03:18:12.182165" elapsed="0.002494"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.185078" elapsed="0.000186"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.184841" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.184827" elapsed="0.000499"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.185842" level="INFO">${j} = 51</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.185483" elapsed="0.000385"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.186646" level="INFO">${item} =         {
          "id": "51",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.186022" elapsed="0.000652"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.186827" elapsed="0.000184"/>
</kw>
<var name="${iteration}">51</var>
<status status="PASS" start="2026-04-17T03:18:12.184796" elapsed="0.002258"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.187505" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.187241" elapsed="0.000494"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.187226" elapsed="0.000533"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.188317" level="INFO">${j} = 52</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.187907" elapsed="0.000437"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.189130" level="INFO">${item} =         {
          "id": "52",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.188516" elapsed="0.000642"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.189313" elapsed="0.000204"/>
</kw>
<var name="${iteration}">52</var>
<status status="PASS" start="2026-04-17T03:18:12.187196" elapsed="0.002358"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.189973" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.189736" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.189721" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.190760" level="INFO">${j} = 53</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.190377" elapsed="0.000411"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.191590" level="INFO">${item} =         {
          "id": "53",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.190942" elapsed="0.000678"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.191812" elapsed="0.000187"/>
</kw>
<var name="${iteration}">53</var>
<status status="PASS" start="2026-04-17T03:18:12.189690" elapsed="0.002347"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.192505" elapsed="0.000189"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.192242" elapsed="0.000490"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.192228" elapsed="0.000530"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.193311" level="INFO">${j} = 54</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.192900" elapsed="0.000439"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.194131" level="INFO">${item} =         {
          "id": "54",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.193511" elapsed="0.000650"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.194316" elapsed="0.000201"/>
</kw>
<var name="${iteration}">54</var>
<status status="PASS" start="2026-04-17T03:18:12.192196" elapsed="0.002359"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.194970" elapsed="0.000219"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.194734" elapsed="0.000503"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.194719" elapsed="0.000549"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.195898" level="INFO">${j} = 55</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.195484" elapsed="0.000441"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.196744" level="INFO">${item} =         {
          "id": "55",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.196115" elapsed="0.000662"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.196931" elapsed="0.000182"/>
</kw>
<var name="${iteration}">55</var>
<status status="PASS" start="2026-04-17T03:18:12.194688" elapsed="0.002462"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.197577" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.197326" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.197312" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.198316" level="INFO">${j} = 56</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.197969" elapsed="0.000373"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.199156" level="INFO">${item} =         {
          "id": "56",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.198520" elapsed="0.000665"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.199338" elapsed="0.000199"/>
</kw>
<var name="${iteration}">56</var>
<status status="PASS" start="2026-04-17T03:18:12.197282" elapsed="0.002291"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.200127" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.199868" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.199747" elapsed="0.000625"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.200880" level="INFO">${j} = 57</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.200529" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.201699" level="INFO">${item} =         {
          "id": "57",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.201057" elapsed="0.000671"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.201881" elapsed="0.000184"/>
</kw>
<var name="${iteration}">57</var>
<status status="PASS" start="2026-04-17T03:18:12.199708" elapsed="0.002395"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.202536" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.202282" elapsed="0.000477"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.202268" elapsed="0.000514"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.203441" level="INFO">${j} = 58</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.202936" elapsed="0.000532"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.204323" level="INFO">${item} =         {
          "id": "58",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.203666" elapsed="0.000686"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.204523" elapsed="0.000184"/>
</kw>
<var name="${iteration}">58</var>
<status status="PASS" start="2026-04-17T03:18:12.202237" elapsed="0.002507"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.205160" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.204925" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.204910" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.205924" level="INFO">${j} = 59</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.205564" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.206717" level="INFO">${item} =         {
          "id": "59",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.206103" elapsed="0.000642"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.206896" elapsed="0.000181"/>
</kw>
<var name="${iteration}">59</var>
<status status="PASS" start="2026-04-17T03:18:12.204880" elapsed="0.002233"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.207539" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.207289" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.207275" elapsed="0.000507"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.208320" level="INFO">${j} = 60</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.207925" elapsed="0.000422"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.209133" level="INFO">${item} =         {
          "id": "60",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.208523" elapsed="0.000638"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.209313" elapsed="0.000199"/>
</kw>
<var name="${iteration}">60</var>
<status status="PASS" start="2026-04-17T03:18:12.207245" elapsed="0.002303"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.209959" elapsed="0.000181"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.209727" elapsed="0.000450"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.209713" elapsed="0.000488"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.210709" level="INFO">${j} = 61</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.210344" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.211509" level="INFO">${item} =         {
          "id": "61",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.210885" elapsed="0.000652"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.211691" elapsed="0.000180"/>
</kw>
<var name="${iteration}">61</var>
<status status="PASS" start="2026-04-17T03:18:12.209682" elapsed="0.002226"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.212352" elapsed="0.000207"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.212116" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.212101" elapsed="0.000520"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.213116" level="INFO">${j} = 62</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.212765" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.213916" level="INFO">${item} =         {
          "id": "62",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.213291" elapsed="0.000653"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.214095" elapsed="0.000180"/>
</kw>
<var name="${iteration}">62</var>
<status status="PASS" start="2026-04-17T03:18:12.212041" elapsed="0.002271"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.214740" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.214506" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.214492" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.215528" level="INFO">${j} = 63</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.215158" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.216328" level="INFO">${item} =         {
          "id": "63",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.215706" elapsed="0.000650"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.216527" elapsed="0.000207"/>
</kw>
<var name="${iteration}">63</var>
<status status="PASS" start="2026-04-17T03:18:12.214461" elapsed="0.002324"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.217336" elapsed="0.000203"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.217094" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.216976" elapsed="0.000625"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.218093" level="INFO">${j} = 64</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.217742" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.218887" level="INFO">${item} =         {
          "id": "64",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.218272" elapsed="0.000643"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.219067" elapsed="0.000183"/>
</kw>
<var name="${iteration}">64</var>
<status status="PASS" start="2026-04-17T03:18:12.216944" elapsed="0.002343"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.219717" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.219484" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.219469" elapsed="0.000492"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.220507" level="INFO">${j} = 65</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.220133" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.221285" level="INFO">${item} =         {
          "id": "65",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.220686" elapsed="0.000627"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.221481" elapsed="0.000184"/>
</kw>
<var name="${iteration}">65</var>
<status status="PASS" start="2026-04-17T03:18:12.219438" elapsed="0.002264"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.222111" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.221879" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.221865" elapsed="0.000491"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.222867" level="INFO">${j} = 66</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.222515" elapsed="0.000377"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.223662" level="INFO">${item} =         {
          "id": "66",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.223044" elapsed="0.000645"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.223842" elapsed="0.000181"/>
</kw>
<var name="${iteration}">66</var>
<status status="PASS" start="2026-04-17T03:18:12.221835" elapsed="0.002226"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.224531" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.224263" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.224248" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.225271" level="INFO">${j} = 67</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.224915" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.226079" level="INFO">${item} =         {
          "id": "67",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.225469" elapsed="0.000638"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.226258" elapsed="0.000198"/>
</kw>
<var name="${iteration}">67</var>
<status status="PASS" start="2026-04-17T03:18:12.224218" elapsed="0.002309"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.226942" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.226708" elapsed="0.000470"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.226694" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.227801" level="INFO">${j} = 68</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.227414" elapsed="0.000413"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.228645" level="INFO">${item} =         {
          "id": "68",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.227983" elapsed="0.000690"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.228828" elapsed="0.000183"/>
</kw>
<var name="${iteration}">68</var>
<status status="PASS" start="2026-04-17T03:18:12.226663" elapsed="0.002386"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.229480" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.229227" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.229213" elapsed="0.000513"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.230214" level="INFO">${j} = 69</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.229866" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.231017" level="INFO">${item} =         {
          "id": "69",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.230407" elapsed="0.000637"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.231235" elapsed="0.000262"/>
</kw>
<var name="${iteration}">69</var>
<status status="PASS" start="2026-04-17T03:18:12.229183" elapsed="0.002364"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.231984" elapsed="0.000205"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.231739" elapsed="0.000488"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.231725" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.232771" level="INFO">${j} = 70</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.232410" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.233563" level="INFO">${item} =         {
          "id": "70",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.232949" elapsed="0.000642"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.233743" elapsed="0.000182"/>
</kw>
<var name="${iteration}">70</var>
<status status="PASS" start="2026-04-17T03:18:12.231693" elapsed="0.002269"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.235151" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.234899" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.234127" elapsed="0.001290"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.235925" level="INFO">${j} = 71</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.235560" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.236783" level="INFO">${item} =         {
          "id": "71",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.236129" elapsed="0.000683"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.236972" elapsed="0.000198"/>
</kw>
<var name="${iteration}">71</var>
<status status="PASS" start="2026-04-17T03:18:12.234097" elapsed="0.003112"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.237643" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.237404" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.237374" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.238395" level="INFO">${j} = 72</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.238030" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.239175" level="INFO">${item} =         {
          "id": "72",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.238575" elapsed="0.000664"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.239409" elapsed="0.000214"/>
</kw>
<var name="${iteration}">72</var>
<status status="PASS" start="2026-04-17T03:18:12.237344" elapsed="0.002322"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.240117" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.239862" elapsed="0.000478"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.239847" elapsed="0.000517"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.240875" level="INFO">${j} = 73</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.240521" elapsed="0.000380"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.241680" level="INFO">${item} =         {
          "id": "73",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.241054" elapsed="0.000654"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.241861" elapsed="0.000183"/>
</kw>
<var name="${iteration}">73</var>
<status status="PASS" start="2026-04-17T03:18:12.239815" elapsed="0.002266"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.242510" elapsed="0.000182"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.242259" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.242245" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.243241" level="INFO">${j} = 74</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.242893" elapsed="0.000374"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.244042" level="INFO">${item} =         {
          "id": "74",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.243436" elapsed="0.000634"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.244249" elapsed="0.000218"/>
</kw>
<var name="${iteration}">74</var>
<status status="PASS" start="2026-04-17T03:18:12.242215" elapsed="0.002300"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.244943" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.244707" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.244692" elapsed="0.000495"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.245694" level="INFO">${j} = 75</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.245325" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.246632" level="INFO">${item} =         {
          "id": "75",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.245872" elapsed="0.000789"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.246813" elapsed="0.000182"/>
</kw>
<var name="${iteration}">75</var>
<status status="PASS" start="2026-04-17T03:18:12.244661" elapsed="0.002372"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.247466" elapsed="0.000183"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.247210" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.247195" elapsed="0.000515"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.248214" level="INFO">${j} = 76</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.247849" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.249067" level="INFO">${item} =         {
          "id": "76",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.248407" elapsed="0.000688"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.249255" elapsed="0.000231"/>
</kw>
<var name="${iteration}">76</var>
<status status="PASS" start="2026-04-17T03:18:12.247165" elapsed="0.002361"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.250006" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.249729" elapsed="0.000507"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.249711" elapsed="0.000549"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.250838" level="INFO">${j} = 77</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.250423" elapsed="0.000478"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.251714" level="INFO">${item} =         {
          "id": "77",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.251060" elapsed="0.000684"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.251899" elapsed="0.000233"/>
</kw>
<var name="${iteration}">77</var>
<status status="PASS" start="2026-04-17T03:18:12.249678" elapsed="0.002515"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.308243" elapsed="0.000336"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.307685" elapsed="0.000949"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.252371" elapsed="0.056290"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.309229" level="INFO">${j} = 78</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.308811" elapsed="0.000447"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.310075" level="INFO">${item} =         {
          "id": "78",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.309431" elapsed="0.000674"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.310262" elapsed="0.000206"/>
</kw>
<var name="${iteration}">78</var>
<status status="PASS" start="2026-04-17T03:18:12.252338" elapsed="0.058169"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.310956" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.310717" elapsed="0.000465"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.310701" elapsed="0.000506"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.311729" level="INFO">${j} = 79</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.311352" elapsed="0.000404"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.312631" level="INFO">${item} =         {
          "id": "79",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.311911" elapsed="0.000750"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.312818" elapsed="0.000187"/>
</kw>
<var name="${iteration}">79</var>
<status status="PASS" start="2026-04-17T03:18:12.310666" elapsed="0.002377"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.313479" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.313226" elapsed="0.000479"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.313211" elapsed="0.000519"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.314230" level="INFO">${j} = 80</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.313874" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.315035" level="INFO">${item} =         {
          "id": "80",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.314425" elapsed="0.000638"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.315219" elapsed="0.000201"/>
</kw>
<var name="${iteration}">80</var>
<status status="PASS" start="2026-04-17T03:18:12.313180" elapsed="0.002281"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.316016" elapsed="0.000243"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.315644" elapsed="0.000655"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.315629" elapsed="0.000694"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.316884" level="INFO">${j} = 81</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.316509" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.317688" level="INFO">${item} =         {
          "id": "81",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.317065" elapsed="0.000651"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.317872" elapsed="0.000185"/>
</kw>
<var name="${iteration}">81</var>
<status status="PASS" start="2026-04-17T03:18:12.315598" elapsed="0.002496"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.318600" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.318276" elapsed="0.000550"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.318261" elapsed="0.000590"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.319349" level="INFO">${j} = 82</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.318994" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.320164" level="INFO">${item} =         {
          "id": "82",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.319546" elapsed="0.000648"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.320351" elapsed="0.000201"/>
</kw>
<var name="${iteration}">82</var>
<status status="PASS" start="2026-04-17T03:18:12.318230" elapsed="0.002359"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.321005" elapsed="0.000185"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.320769" elapsed="0.000459"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.320754" elapsed="0.000498"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.321766" level="INFO">${j} = 83</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.321410" elapsed="0.000382"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.322680" level="INFO">${item} =         {
          "id": "83",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.321946" elapsed="0.000762"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.322866" elapsed="0.000184"/>
</kw>
<var name="${iteration}">83</var>
<status status="PASS" start="2026-04-17T03:18:12.320723" elapsed="0.002785"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.323938" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.323696" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.323681" elapsed="0.000538"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.324748" level="INFO">${j} = 84</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.324363" elapsed="0.000411"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.325559" level="INFO">${item} =         {
          "id": "84",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.324928" elapsed="0.000660"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.325744" elapsed="0.000184"/>
</kw>
<var name="${iteration}">84</var>
<status status="PASS" start="2026-04-17T03:18:12.323649" elapsed="0.002315"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.326399" elapsed="0.000213"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.326146" elapsed="0.000527"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.326131" elapsed="0.000577"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.327554" level="INFO">${j} = 85</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.326864" elapsed="0.000723"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.328536" level="INFO">${item} =         {
          "id": "85",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.327790" elapsed="0.000775"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.328726" elapsed="0.000191"/>
</kw>
<var name="${iteration}">85</var>
<status status="PASS" start="2026-04-17T03:18:12.326100" elapsed="0.002856"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.329420" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.329156" elapsed="0.000495"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.329137" elapsed="0.000540"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.330194" level="INFO">${j} = 86</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.329824" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.331030" level="INFO">${item} =         {
          "id": "86",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.330396" elapsed="0.000668"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.331279" elapsed="0.000206"/>
</kw>
<var name="${iteration}">86</var>
<status status="PASS" start="2026-04-17T03:18:12.329097" elapsed="0.002429"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.331956" elapsed="0.000232"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.331711" elapsed="0.000518"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.331696" elapsed="0.000559"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.332787" level="INFO">${j} = 87</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.332416" elapsed="0.000398"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.333611" level="INFO">${item} =         {
          "id": "87",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.332974" elapsed="0.000666"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.333800" elapsed="0.000189"/>
</kw>
<var name="${iteration}">87</var>
<status status="PASS" start="2026-04-17T03:18:12.331664" elapsed="0.002365"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.334470" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.334213" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.334198" elapsed="0.000525"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.335252" level="INFO">${j} = 88</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.334869" elapsed="0.000411"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.336074" level="INFO">${item} =         {
          "id": "88",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.335456" elapsed="0.000647"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.336286" elapsed="0.000203"/>
</kw>
<var name="${iteration}">88</var>
<status status="PASS" start="2026-04-17T03:18:12.334166" elapsed="0.002362"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.336955" elapsed="0.000188"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.336716" elapsed="0.000466"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.336699" elapsed="0.000509"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.337734" level="INFO">${j} = 89</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.337353" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.338553" level="INFO">${item} =         {
          "id": "89",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.337916" elapsed="0.000665"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.338737" elapsed="0.000187"/>
</kw>
<var name="${iteration}">89</var>
<status status="PASS" start="2026-04-17T03:18:12.336667" elapsed="0.002296"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.339416" elapsed="0.000191"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.339160" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.339143" elapsed="0.000529"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.340355" level="INFO">${j} = 90</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.339816" elapsed="0.000566"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.341199" level="INFO">${item} =         {
          "id": "90",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.340560" elapsed="0.000667"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.341401" elapsed="0.000191"/>
</kw>
<var name="${iteration}">90</var>
<status status="PASS" start="2026-04-17T03:18:12.339110" elapsed="0.002522"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.342058" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.341817" elapsed="0.000468"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.341802" elapsed="0.000508"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.342838" level="INFO">${j} = 91</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.342468" elapsed="0.000397"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.343727" level="INFO">${item} =         {
          "id": "91",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.343074" elapsed="0.000682"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.343915" elapsed="0.000189"/>
</kw>
<var name="${iteration}">91</var>
<status status="PASS" start="2026-04-17T03:18:12.341770" elapsed="0.002387"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.344605" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.344346" elapsed="0.000486"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.344330" elapsed="0.000528"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.345364" level="INFO">${j} = 92</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.345000" elapsed="0.000407"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.346182" level="INFO">${item} =         {
          "id": "92",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.345564" elapsed="0.000646"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.346367" elapsed="0.000207"/>
</kw>
<var name="${iteration}">92</var>
<status status="PASS" start="2026-04-17T03:18:12.344298" elapsed="0.002315"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.347104" elapsed="0.000196"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.346845" elapsed="0.000496"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.346829" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.347898" level="INFO">${j} = 93</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.347531" elapsed="0.000395"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.348756" level="INFO">${item} =         {
          "id": "93",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.348084" elapsed="0.000700"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.348942" elapsed="0.000190"/>
</kw>
<var name="${iteration}">93</var>
<status status="PASS" start="2026-04-17T03:18:12.346793" elapsed="0.002377"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.349614" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.349356" elapsed="0.000484"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.349340" elapsed="0.000524"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.350373" level="INFO">${j} = 94</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.350008" elapsed="0.000408"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.351232" level="INFO">${item} =         {
          "id": "94",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.350574" elapsed="0.000687"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.351441" elapsed="0.000193"/>
</kw>
<var name="${iteration}">94</var>
<status status="PASS" start="2026-04-17T03:18:12.349308" elapsed="0.002365"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.352098" elapsed="0.000216"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.351858" elapsed="0.000496"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.351842" elapsed="0.000537"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.352908" level="INFO">${j} = 95</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.352544" elapsed="0.000391"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.353721" level="INFO">${item} =         {
          "id": "95",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.353091" elapsed="0.000659"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.353907" elapsed="0.000184"/>
</kw>
<var name="${iteration}">95</var>
<status status="PASS" start="2026-04-17T03:18:12.351811" elapsed="0.002320"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.354572" elapsed="0.000187"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.354315" elapsed="0.000517"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.354300" elapsed="0.000561"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.355774" level="INFO">${j} = 96</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.355010" elapsed="0.000792"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.356649" level="INFO">${item} =         {
          "id": "96",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.355963" elapsed="0.000716"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.356841" elapsed="0.000190"/>
</kw>
<var name="${iteration}">96</var>
<status status="PASS" start="2026-04-17T03:18:12.354268" elapsed="0.002802"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.357515" elapsed="0.000314"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.357257" elapsed="0.000613"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.357242" elapsed="0.000653"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.358429" level="INFO">${j} = 97</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.358043" elapsed="0.000414"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.359478" level="INFO">${item} =         {
          "id": "97",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.358617" elapsed="0.000891"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.359671" elapsed="0.000190"/>
</kw>
<var name="${iteration}">97</var>
<status status="PASS" start="2026-04-17T03:18:12.357210" elapsed="0.002690"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.360355" elapsed="0.000204"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.360088" elapsed="0.000512"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.360072" elapsed="0.000553"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.361139" level="INFO">${j} = 98</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.360769" elapsed="0.000403"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.361999" level="INFO">${item} =         {
          "id": "98",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.361332" elapsed="0.000696"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.362186" elapsed="0.000187"/>
</kw>
<var name="${iteration}">98</var>
<status status="PASS" start="2026-04-17T03:18:12.360041" elapsed="0.002386"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.362871" elapsed="0.000193"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.362626" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.362611" elapsed="0.000521"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.363700" level="INFO">${j} = 99</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.363278" elapsed="0.000449"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.364562" level="INFO">${item} =         {
          "id": "99",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
 ...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.363887" elapsed="0.000705"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.364749" elapsed="0.000188"/>
</kw>
<var name="${iteration}">99</var>
<status status="PASS" start="2026-04-17T03:18:12.362574" elapsed="0.002401"/>
</iter>
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.365418" elapsed="0.000192"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.365161" elapsed="0.000488"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.365145" elapsed="0.000653"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.366327" level="INFO">${j} = 100</msg>
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.365961" elapsed="0.000393"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.367166" level="INFO">${item} =         {
          "id": "100",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
...</msg>
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:18:12.366529" elapsed="0.000667"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.367353" elapsed="0.000307"/>
</kw>
<var name="${iteration}">100</var>
<status status="PASS" start="2026-04-17T03:18:12.365113" elapsed="0.002644"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="PASS" start="2026-04-17T03:18:12.056081" elapsed="0.311712"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.369136" level="INFO">${final_text} = {
  "flow": [
        {
          "id": "1",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "...</msg>
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="PASS" start="2026-04-17T03:18:12.367962" elapsed="0.001204"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:18:12.369232" elapsed="0.000043"/>
</return>
<msg time="2026-04-17T03:18:12.369435" level="INFO">${data} = {
  "flow": [
        {
          "id": "1",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "...</msg>
<var>${data}</var>
<arg>folder=${folder}</arg>
<arg>name_prefix=post_</arg>
<arg>base_name=${base_name}</arg>
<arg>extension=${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>endline=${endline}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from 1, by one 100 times.
Template variable ${j} is calculated as ${i} incremented by offset 0 ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:18:11.999409" elapsed="0.370055"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:18:12.370889" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:18:12.370593" elapsed="0.000375">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/openflowplugin/add-flow/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:18:12.371070" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:18:12.370218" elapsed="0.000882"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:12.371451" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:12.371179" elapsed="0.000335"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.372047" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:18:12.371742" elapsed="0.000332"/>
</kw>
<status status="PASS" start="2026-04-17T03:18:12.371539" elapsed="0.000572"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:12.371157" elapsed="0.000977"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.374707" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:18:12.372332" elapsed="0.002403"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:18:12.374790" elapsed="0.000033"/>
</return>
<msg time="2026-04-17T03:18:12.374956" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Reconciliation/../../../variables/openflowplugin/add-flow/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:18:12.369855" elapsed="0.005127"/>
</kw>
<kw name="Post_To_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.376786" level="INFO">/rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:12.376513" elapsed="0.000322"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.377239" level="INFO">{
  "flow": [
        {
          "id": "1",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.1/32"
          },
          "flow-name": "Flow-1",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 1
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "2",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.2/32"
          },
          "flow-name": "Flow-2",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 2
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "3",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.3/32"
          },
          "flow-name": "Flow-3",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 3
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "4",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.4/32"
          },
          "flow-name": "Flow-4",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 4
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "5",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.5/32"
          },
          "flow-name": "Flow-5",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 5
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "6",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.6/32"
          },
          "flow-name": "Flow-6",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 6
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "7",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.7/32"
          },
          "flow-name": "Flow-7",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 7
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "8",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.8/32"
          },
          "flow-name": "Flow-8",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 8
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "9",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.9/32"
          },
          "flow-name": "Flow-9",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 9
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "10",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.10/32"
          },
          "flow-name": "Flow-10",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 10
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "11",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.11/32"
          },
          "flow-name": "Flow-11",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 11
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "12",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.12/32"
          },
          "flow-name": "Flow-12",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 12
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "13",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.13/32"
          },
          "flow-name": "Flow-13",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 13
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "14",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.14/32"
          },
          "flow-name": "Flow-14",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 14
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "15",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.15/32"
          },
          "flow-name": "Flow-15",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 15
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "16",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.16/32"
          },
          "flow-name": "Flow-16",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 16
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "17",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.17/32"
          },
          "flow-name": "Flow-17",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 17
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "18",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.18/32"
          },
          "flow-name": "Flow-18",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 18
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "19",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.19/32"
          },
          "flow-name": "Flow-19",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 19
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "20",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.20/32"
          },
          "flow-name": "Flow-20",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 20
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "21",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.21/32"
          },
          "flow-name": "Flow-21",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 21
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "22",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.22/32"
          },
          "flow-name": "Flow-22",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 22
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "23",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.23/32"
          },
          "flow-name": "Flow-23",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 23
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "24",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.24/32"
          },
          "flow-name": "Flow-24",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 24
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "25",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.25/32"
          },
          "flow-name": "Flow-25",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 25
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "26",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.26/32"
          },
          "flow-name": "Flow-26",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 26
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "27",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.27/32"
          },
          "flow-name": "Flow-27",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 27
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "28",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.28/32"
          },
          "flow-name": "Flow-28",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 28
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "29",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.29/32"
          },
          "flow-name": "Flow-29",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 29
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "30",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.30/32"
          },
          "flow-name": "Flow-30",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 30
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "31",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.31/32"
          },
          "flow-name": "Flow-31",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 31
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "32",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.32/32"
          },
          "flow-name": "Flow-32",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 32
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "33",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.33/32"
          },
          "flow-name": "Flow-33",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 33
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "34",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.34/32"
          },
          "flow-name": "Flow-34",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 34
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "35",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.35/32"
          },
          "flow-name": "Flow-35",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 35
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "36",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.36/32"
          },
          "flow-name": "Flow-36",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 36
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "37",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.37/32"
          },
          "flow-name": "Flow-37",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 37
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "38",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.38/32"
          },
          "flow-name": "Flow-38",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 38
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "39",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.39/32"
          },
          "flow-name": "Flow-39",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 39
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "40",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.40/32"
          },
          "flow-name": "Flow-40",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 40
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "41",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.41/32"
          },
          "flow-name": "Flow-41",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 41
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "42",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.42/32"
          },
          "flow-name": "Flow-42",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 42
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "43",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.43/32"
          },
          "flow-name": "Flow-43",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 43
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "44",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.44/32"
          },
          "flow-name": "Flow-44",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 44
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "45",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.45/32"
          },
          "flow-name": "Flow-45",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 45
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "46",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.46/32"
          },
          "flow-name": "Flow-46",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 46
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "47",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.47/32"
          },
          "flow-name": "Flow-47",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 47
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "48",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.48/32"
          },
          "flow-name": "Flow-48",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 48
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "49",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.49/32"
          },
          "flow-name": "Flow-49",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 49
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "50",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.50/32"
          },
          "flow-name": "Flow-50",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 50
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "51",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.51/32"
          },
          "flow-name": "Flow-51",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 51
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "52",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.52/32"
          },
          "flow-name": "Flow-52",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 52
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "53",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.53/32"
          },
          "flow-name": "Flow-53",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 53
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "54",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.54/32"
          },
          "flow-name": "Flow-54",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 54
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "55",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.55/32"
          },
          "flow-name": "Flow-55",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 55
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "56",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.56/32"
          },
          "flow-name": "Flow-56",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 56
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "57",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.57/32"
          },
          "flow-name": "Flow-57",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 57
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "58",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.58/32"
          },
          "flow-name": "Flow-58",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 58
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "59",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.59/32"
          },
          "flow-name": "Flow-59",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 59
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "60",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.60/32"
          },
          "flow-name": "Flow-60",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 60
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "61",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.61/32"
          },
          "flow-name": "Flow-61",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 61
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "62",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.62/32"
          },
          "flow-name": "Flow-62",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 62
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "63",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.63/32"
          },
          "flow-name": "Flow-63",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 63
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "64",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.64/32"
          },
          "flow-name": "Flow-64",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 64
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "65",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.65/32"
          },
          "flow-name": "Flow-65",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 65
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "66",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.66/32"
          },
          "flow-name": "Flow-66",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 66
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "67",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.67/32"
          },
          "flow-name": "Flow-67",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 67
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "68",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.68/32"
          },
          "flow-name": "Flow-68",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 68
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "69",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.69/32"
          },
          "flow-name": "Flow-69",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 69
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "70",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.70/32"
          },
          "flow-name": "Flow-70",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 70
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "71",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.71/32"
          },
          "flow-name": "Flow-71",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 71
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "72",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.72/32"
          },
          "flow-name": "Flow-72",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 72
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "73",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.73/32"
          },
          "flow-name": "Flow-73",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 73
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "74",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.74/32"
          },
          "flow-name": "Flow-74",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 74
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "75",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.75/32"
          },
          "flow-name": "Flow-75",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 75
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "76",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.76/32"
          },
          "flow-name": "Flow-76",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 76
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "77",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.77/32"
          },
          "flow-name": "Flow-77",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 77
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "78",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.78/32"
          },
          "flow-name": "Flow-78",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 78
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "79",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.79/32"
          },
          "flow-name": "Flow-79",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 79
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "80",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.80/32"
          },
          "flow-name": "Flow-80",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 80
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "81",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.81/32"
          },
          "flow-name": "Flow-81",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 81
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "82",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.82/32"
          },
          "flow-name": "Flow-82",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 82
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "83",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.83/32"
          },
          "flow-name": "Flow-83",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 83
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "84",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.84/32"
          },
          "flow-name": "Flow-84",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 84
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "85",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.85/32"
          },
          "flow-name": "Flow-85",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 85
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "86",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.86/32"
          },
          "flow-name": "Flow-86",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 86
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "87",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.87/32"
          },
          "flow-name": "Flow-87",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 87
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "88",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.88/32"
          },
          "flow-name": "Flow-88",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 88
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "89",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.89/32"
          },
          "flow-name": "Flow-89",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 89
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "90",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.90/32"
          },
          "flow-name": "Flow-90",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 90
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "91",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.91/32"
          },
          "flow-name": "Flow-91",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 91
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "92",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.92/32"
          },
          "flow-name": "Flow-92",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 92
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "93",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.93/32"
          },
          "flow-name": "Flow-93",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 93
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "94",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.94/32"
          },
          "flow-name": "Flow-94",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 94
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "95",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.95/32"
          },
          "flow-name": "Flow-95",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 95
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "96",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.96/32"
          },
          "flow-name": "Flow-96",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 96
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "97",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.97/32"
          },
          "flow-name": "Flow-97",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 97
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "98",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.98/32"
          },
          "flow-name": "Flow-98",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 98
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "99",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.99/32"
          },
          "flow-name": "Flow-99",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 99
                      }
                    }
                  ]
                }
              }
            ]
          }
        },
        {
          "id": "100",
          "priority": 100,
          "table_id": 0,
          "match": {
            "ethernet-match": {
              "ethernet-type": {
                "type": 2048
              }
            },
            "ipv4-destination": "10.0.10.100/32"
          },
          "flow-name": "Flow-100",
          "instructions": {
            "instruction": [
              {
                "order": 1,
                "apply-actions": {
                  "action": [
                    {
                      "order": 1,
                      "group-action": {
                        "group-id": 100
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
  ]
}</msg>
<arg>${data}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:12.376991" elapsed="0.000968"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.378403" level="INFO">{'Content-Type': 'application/json'}</msg>
<arg>${content_type}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:12.378120" elapsed="0.000337"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.378865" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:12.378613" elapsed="0.000297"/>
</kw>
<kw name="Join_Two_Headers" owner="TemplatedRequests">
<kw name="Copy Dictionary" owner="Collections">
<msg time="2026-04-17T03:18:12.379770" level="INFO">${accumulator} = {'Content-Type': 'application/json'}</msg>
<var>${accumulator}</var>
<arg>${first}</arg>
<doc>Returns a copy of the given dictionary.</doc>
<status status="PASS" start="2026-04-17T03:18:12.379560" elapsed="0.000239"/>
</kw>
<kw name="Get Dictionary Items" owner="Collections">
<msg time="2026-04-17T03:18:12.380138" level="INFO">${items_to_add} = []</msg>
<var>${items_to_add}</var>
<arg>${second}</arg>
<doc>Returns items of the given ``dictionary`` as a list.</doc>
<status status="PASS" start="2026-04-17T03:18:12.379957" elapsed="0.000256"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${accumulator}</arg>
<arg>@{items_to_add}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="PASS" start="2026-04-17T03:18:12.380376" elapsed="0.000221"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:12.381011" level="INFO">{'Content-Type': 'application/json'}</msg>
<arg>${accumulator}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:12.380754" elapsed="0.000301"/>
</kw>
<return>
<value>${accumulator}</value>
<status status="PASS" start="2026-04-17T03:18:12.381099" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:18:12.381263" level="INFO">${headers} = {'Content-Type': 'application/json'}</msg>
<var>${headers}</var>
<arg>first=${content_type}</arg>
<arg>second=${accept}</arg>
<doc>Take two dicts, join them, return result. Second argument values take precedence.</doc>
<status status="PASS" start="2026-04-17T03:18:12.379127" elapsed="0.002162"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:12.386298" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<msg time="2026-04-17T03:18:12.587811" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<msg time="2026-04-17T03:18:12.990489" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<msg time="2026-04-17T03:18:12.993045" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>${uri}</arg>
<arg>data=${data}</arg>
<arg>headers=${headers}</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:12.383429" elapsed="0.615712">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:18:12.381366" elapsed="0.618013">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="POST On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>${uri}</arg>
<arg>data=${data}</arg>
<arg>headers=${headers}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:12.999955" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:12.999507" elapsed="0.000616"/>
</branch>
<status status="FAIL" start="2026-04-17T03:18:12.381347" elapsed="0.618834">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:13.001196" elapsed="0.000063"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:13.002095" elapsed="0.000040"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:13.001540" elapsed="0.000669"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:13.001485" elapsed="0.000784"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:13.002722" elapsed="0.000066"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:18:13.002907" elapsed="0.000038"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>data=${data}</arg>
<arg>content_type=${content_type}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<arg>http_timeout=${http_timeout}</arg>
<doc>POST data to given URI, check status code and return response text.
${content_type} and ${accept} are mandatory Python objects with headers to use.
If ${normalize_json}, normalize text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:18:12.375343" elapsed="0.627828">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:13.003563" elapsed="0.000046"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>extension=json</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>content_type=${HEADERS_YANG_JSON}</arg>
<arg>mapping=${mapping}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>endline=${\n}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>additional_allowed_status_codes=${additional_allowed_status_codes}</arg>
<arg>explicit_status_codes=${explicit_status_codes}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve URI and data from folder, call Post_To_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:18:11.912474" elapsed="1.091349">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=response</arg>
<arg>mapping=${mapping}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:13.004662" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:13.004101" elapsed="0.000733"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:13.004059" elapsed="0.000834"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:18:13.004971" elapsed="0.000035"/>
</return>
<arg>folder=${VAR_DIR}/add-flow</arg>
<arg>mapping=${mapping}</arg>
<arg>session=session</arg>
<arg>iterations=${ITER}</arg>
<doc>Add arguments sensible for JSON data, return Post_Templated response text.
Optionally, verification against response.json (no iteration) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.
Response status code must be one of values from ${explicit_status_codes} if specified or one of set
created from all positive HTTP status codes together with ${additional_allowed_status_codes}.</doc>
<status status="FAIL" start="2026-04-17T03:18:11.909463" elapsed="1.095744">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:18:11.897166" elapsed="1.108211">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:18:11.894953" elapsed="1.110562">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<doc>Add 100 flows to group type 2 in every switch.</doc>
<status status="FAIL" start="2026-04-17T03:18:11.894578" elapsed="1.111119">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t4" name="Start Mininet Linear" line="57">
<kw name="Start Mininet Linear" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:13.007491" level="INFO">Start Mininet Linear</msg>
<arg>Start Mininet Linear</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:13.007198" elapsed="0.000354"/>
</kw>
<kw name="Start Mininet Single Controller" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:13.010713" level="INFO">Clear any existing mininet</msg>
<arg>Clear any existing mininet</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:13.010428" elapsed="0.000354"/>
</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-04-17T03:18:13.013889" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:13.013510" elapsed="0.000447"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:13.013490" elapsed="0.000492"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:13.014310" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:18:13.014444" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:18:13.014132" elapsed="0.000340"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:13.015026" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:18:13.014627" elapsed="0.000447"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:13.015625" level="INFO">${conn_id} = 1</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-04-17T03:18:13.015232" elapsed="0.000426"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:18:13.016689" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:13.016777" 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-04-17T03:18:13.016329" elapsed="0.000472"/>
</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-04-17T03:18:13.016963" elapsed="0.000380"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:13.018403" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:13.347301" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:09 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:13.017925" elapsed="0.329616"/>
</kw>
<msg time="2026-04-17T03:18:13.347640" 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="PASS" start="2026-04-17T03:18:13.017538" elapsed="0.330211"/>
</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="PASS" start="2026-04-17T03:18:13.015931" elapsed="0.331955"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:13.348469" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:18:14.496201" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:18:14.496616" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:18:14.496722" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:18:13.348167" elapsed="1.148615"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:14.497253" elapsed="0.000638"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:14.499064" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:14.498366" elapsed="0.000824"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:14.499782" elapsed="0.000045"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:14.499370" elapsed="0.000544"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:14.499318" elapsed="0.000653"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:18:14.500357" elapsed="0.000107"/>
</return>
<status status="PASS" start="2026-04-17T03:18:14.500098" elapsed="0.000447"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:14.500062" elapsed="0.000541"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:14.500752" elapsed="0.000042"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:18:14.507053" elapsed="0.000378"/>
</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="PASS" start="2026-04-17T03:18:14.507605" elapsed="0.000171"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:14.507931" elapsed="0.000103"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:18:14.501736" elapsed="0.006355"/>
</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="PASS" start="2026-04-17T03:18:13.012902" elapsed="1.495285"/>
</kw>
<msg time="2026-04-17T03:18:14.508247" 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="PASS" start="2026-04-17T03:18:13.011946" elapsed="1.496358"/>
</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="PASS" start="2026-04-17T03:18:13.011356" elapsed="1.497124"/>
</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-04-17T03:18:14.510803" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:14.510484" elapsed="0.000384"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:14.510463" elapsed="0.000430"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:14.511219" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:18:14.511338" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:18:14.511064" elapsed="0.000302"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:14.511986" 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.171.160" 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-04-17T03:18:14.511558" elapsed="0.000478"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:14.512640" 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-04-17T03:18:14.512211" elapsed="0.000457"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:18:14.513962" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:14.514054" 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-04-17T03:18:14.513337" elapsed="0.000748"/>
</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-04-17T03:18:14.514266" elapsed="0.000416"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:14.515584" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:14.851608" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:13 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:14.515237" elapsed="0.336564"/>
</kw>
<msg time="2026-04-17T03:18:14.851914" 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="PASS" start="2026-04-17T03:18:14.514861" elapsed="0.337158"/>
</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="PASS" start="2026-04-17T03:18:14.512893" elapsed="0.339268"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:18:14.852753" 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-04-17T03:18:14.885549" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:18:14.885940" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:18:14.886054" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:18:14.852467" elapsed="0.033642"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:14.886635" elapsed="0.000620"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:14.888694" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:14.887942" elapsed="0.000849"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:14.889290" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:18:14.888969" elapsed="0.000463"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:14.888919" elapsed="0.000568"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:18:14.889881" elapsed="0.000067"/>
</return>
<status status="PASS" start="2026-04-17T03:18:14.889608" elapsed="0.000414"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:14.889574" elapsed="0.000503"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:18:14.890220" elapsed="0.000046"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:18:14.895870" elapsed="0.000532"/>
</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="PASS" start="2026-04-17T03:18:14.896783" elapsed="0.000247"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:18:14.897251" elapsed="0.000192"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:18:14.891022" elapsed="0.006503"/>
</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="PASS" start="2026-04-17T03:18:14.509854" elapsed="0.387912"/>
</kw>
<msg time="2026-04-17T03:18:14.897852" 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="PASS" start="2026-04-17T03:18:14.509214" elapsed="0.388720"/>
</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="PASS" start="2026-04-17T03:18:14.508682" elapsed="0.389373"/>
</kw>
<arg>${mininet}</arg>
<status status="PASS" start="2026-04-17T03:18:13.010993" elapsed="1.887147"/>
</kw>
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:18:14.904584" level="INFO">${tools_connection} = 5</msg>
<var>${tools_connection}</var>
<arg>${ip_address}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:18:14.904191" elapsed="0.000420"/>
</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-04-17T03:18:14.906399" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:18:14.906479" 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-04-17T03:18:14.906099" elapsed="0.000404"/>
</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-04-17T03:18:14.906664" elapsed="0.000321"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:18:14.908100" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:18:15.232792" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:18:05 UTC 2026

  System load:  0.07               Processes:             111
  Usage of /:   19.5% of 38.58GB   Users logged in:       1
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:14 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:18:14.907773" elapsed="0.325231"/>
</kw>
<msg time="2026-04-17T03:18:15.233125" 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="PASS" start="2026-04-17T03:18:14.907169" elapsed="0.326065"/>
</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="PASS" start="2026-04-17T03:18:14.905600" elapsed="0.327817"/>
</kw>
<msg time="2026-04-17T03:18:15.233512" 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="PASS" start="2026-04-17T03:18:14.905185" elapsed="0.328404"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:18:14.904804" elapsed="0.328904"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-04-17T03:18:15.233783" elapsed="0.000061"/>
</return>
<msg time="2026-04-17T03:18:15.234144" level="INFO">${mininet_conn_id} = 5</msg>
<var>${mininet_conn_id}</var>
<arg>ip_address=${mininet}</arg>
<arg>timeout=${timeout}</arg>
<doc>Open a connection to the tools system at ${ip_address} and return its identifier.</doc>
<status status="PASS" start="2026-04-17T03:18:14.903691" elapsed="0.330493"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:18:15.235068" level="INFO">${mininet_conn_id} = 5</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-04-17T03:18:15.234608" elapsed="0.000505"/>
</kw>
<if>
<branch type="IF" condition="'${custom}' != '${EMPTY}'">
<kw name="Put File" owner="SSHLibrary">
<arg>${custom}</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:15.237420" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:15.235201" elapsed="0.002281"/>
</branch>
<status status="PASS" start="2026-04-17T03:18:15.235178" elapsed="0.002329"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:15.238035" level="INFO">Start mininet --topo linear,3 to 10.30.170.85</msg>
<arg>Start mininet ${options} to ${controller}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:15.237685" elapsed="0.000401"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:18:15.240623" level="INFO">sudo mn --controller 'remote,ip=10.30.170.85,port=6633' --topo linear,3 --switch ovsk,protocols=OpenFlow13</msg>
<arg>sudo mn --controller 'remote,ip=${controller},port=${ofport}' ${options} --switch ovsk,protocols=OpenFlow${ofversion}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:18:15.238266" elapsed="0.002513"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:18:15.510831" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6633
*** Adding hosts:
h1 h2 h3 
*** Adding switches:
s1 s2 s3 
*** Adding links:
(h1, s1) (h2, s2) (h3, s3) (s2, s1) (s3, s2) 
*** Configuring hosts
h1 h2 h3 
*** Starting controller
c0 
*** Starting 3 switches
s1 s2 s3 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:18:15.240948" elapsed="0.270028"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:18:15.511818" level="INFO">Check OVS configuratiom</msg>
<arg>Check OVS configuratiom</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:18:15.511288" elapsed="0.000579"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:18:15.517236" level="INFO">sh ovs-vsctl show</msg>
<arg>sh ovs-vsctl show</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:18:15.512032" elapsed="0.005260"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:18:15.535083" level="INFO">e6f5c2d7-d554-440d-9b27-fed60334327f
    Bridge s1
        Controller "ptcp:6654"
        Controller "tcp:10.30.170.85:6633"
        fail_mode: secure
        Port s1
            Interface s1
                type: internal
        Port s1-eth2
            Interface s1-eth2
        Port s1-eth1
            Interface s1-eth1
    Bridge s3
        Controller "tcp:10.30.170.85:6633"
        Controller "ptcp:6656"
        fail_mode: secure
        Port s3
            Interface s3
                type: internal
        Port s3-eth2
            Interface s3-eth2
        Port s3-eth1
            Interface s3-eth1
    Bridge s2
        Controller "ptcp:6655"
        Controller "tcp:10.30.170.85:6633"
        fail_mode: secure
        Port s2
            Interface s2
                type: internal
        Port s2-eth1
            Interface s2-eth1
        Port s2-eth2
            Interface s2-eth2
        Port s2-eth3
            Interface s2-eth3
    ovs_version: "2.17.11"
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:18:15.517467" elapsed="0.017709"/>
</kw>
<return>
<value>${mininet_conn_id}</value>
<status status="PASS" start="2026-04-17T03:18:15.535240" elapsed="0.000054"/>
</return>
<arg>options=--topo linear,${switches}</arg>
<arg>ofversion=${ofversion}</arg>
<arg>ofport=${ofport}</arg>
<arg>timeout=${mininet_timeout}</arg>
<doc>Start Mininet with custom topology and connect to controller.</doc>
<status status="PASS" start="2026-04-17T03:18:13.007858" elapsed="2.527595"/>
</kw>
<arg>${SWITCHES}</arg>
<doc>Start mininet linear topology with 3 nodes.</doc>
<status status="PASS" start="2026-04-17T03:18:13.006602" elapsed="2.528920"/>
</kw>
<doc>Start Mininet Linear with 3 switches.</doc>
<status status="PASS" start="2026-04-17T03:18:13.005967" elapsed="2.529688"/>
</test>
<test id="s1-s5-s1-t5" name="Check Linear Topology" line="61">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:15.540574" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:15.742098" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:16.144794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:16.147060" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:15.537595" elapsed="0.615041">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.153339" elapsed="0.000116"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.154731" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.155227" elapsed="0.000068"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.155709" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.155925" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.156126" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.156326" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.156647" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:16.156464" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:16.156439" elapsed="0.000353"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.157024" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:16.156853" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:16.156836" elapsed="0.000268"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:16.157324" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:16.157156" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:16.157141" elapsed="0.000275"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:16.154190" elapsed="0.003254"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:16.153602" elapsed="0.003883"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:15.537237" elapsed="0.620373">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:17.163545" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:17.365150" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:17.767913" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:17.770365" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:17.159948" elapsed="0.616114">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.776743" elapsed="0.000094"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.777885" elapsed="0.000083"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.778503" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.778979" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.779523" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.779840" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.780034" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.780617" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:17.780346" elapsed="0.000352"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:17.780111" elapsed="0.000626"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.781030" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:17.780815" elapsed="0.000276"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:17.780794" elapsed="0.000320"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:17.781441" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:17.781183" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:17.781162" elapsed="0.000395"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:17.777483" elapsed="0.004103"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:17.776974" elapsed="0.004640"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:17.159034" elapsed="0.622700">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:18.787754" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:18.989501" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:19.391594" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:19.393504" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:18.784052" elapsed="0.612865">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.397351" elapsed="0.000065"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.398029" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.398312" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.398613" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.398884" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.399151" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.399440" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.399811" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:19.399572" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:19.399543" elapsed="0.000382"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.400229" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:19.400000" elapsed="0.000302"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:19.399979" elapsed="0.000355"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:19.400677" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:19.400444" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:19.400407" elapsed="0.000376"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:19.397793" elapsed="0.003021"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:19.397498" elapsed="0.003359"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:18.783095" elapsed="0.617925">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:20.406169" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:20.607599" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:21.009722" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:21.011825" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:20.402734" elapsed="0.611972">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.015191" elapsed="0.000036"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.015981" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.016226" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.016481" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.016718" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.016957" elapsed="0.000024"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.017195" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.017589" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:21.017341" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:21.017288" elapsed="0.000398"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.017965" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:21.017752" elapsed="0.000280"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:21.017732" elapsed="0.000329"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:21.018337" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:21.018125" elapsed="0.000296"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:21.018105" elapsed="0.000345"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:21.015578" elapsed="0.002899"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:21.015299" elapsed="0.003212"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:20.402160" elapsed="0.616495">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:22.026015" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:22.227450" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:22.629632" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:22.632020" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:22.021132" elapsed="0.620229">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.642025" elapsed="0.000066"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.643079" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.643288" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.643521" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.643724" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.643924" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.644123" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.644477" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:22.644275" elapsed="0.000263"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:22.644252" elapsed="0.000312"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.644813" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:22.644624" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:22.644606" elapsed="0.000291"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:22.645130" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:22.644953" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:22.644936" elapsed="0.000277"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:22.642778" elapsed="0.002460"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:22.642289" elapsed="0.002978"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:22.020112" elapsed="0.625303">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:23.653706" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:23.855626" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:24.258137" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:24.260800" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:23.648043" elapsed="0.618780">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.267611" elapsed="0.000070"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.268541" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.268870" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.269188" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.269521" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.269831" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.270147" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.270590" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:24.270288" elapsed="0.000388"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:24.270258" elapsed="0.000539"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.271297" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:24.270982" elapsed="0.000426"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:24.270954" elapsed="0.000494"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:24.271806" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:24.271531" elapsed="0.000358"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:24.271506" elapsed="0.000418"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:24.268243" elapsed="0.003716"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:24.267812" elapsed="0.004186"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:23.646916" elapsed="0.625249">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:25.280093" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:25.481783" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:25.884442" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:25.886877" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:25.274572" elapsed="0.618322">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.893601" elapsed="0.000075"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.894737" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.895223" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.895846" elapsed="0.000085"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.896444" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.896667" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.896882" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.897155" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:25.896981" elapsed="0.000257"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:25.896960" elapsed="0.000317"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.897548" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:25.897348" elapsed="0.000259"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:25.897327" elapsed="0.000304"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:25.897852" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:25.897685" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:25.897669" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:25.894295" elapsed="0.003657"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:25.893813" elapsed="0.004167"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:25.273609" elapsed="0.624485">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:26.905278" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:27.106893" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:27.509846" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:27.512289" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:26.900342" elapsed="0.617548">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.518329" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.519148" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.519500" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.519782" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.520073" elapsed="0.000042"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.520716" elapsed="0.000036"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.521076" elapsed="0.000037"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.521541" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:27.521231" elapsed="0.000421"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:27.521199" elapsed="0.000514"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.522190" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:27.521839" elapsed="0.000441"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:27.521801" elapsed="0.000515"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:27.522669" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:27.522422" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:27.522370" elapsed="0.000414"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:27.518844" elapsed="0.003975"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:27.518478" elapsed="0.004385"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:26.899473" elapsed="0.623568">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:28.530679" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:28.732464" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:29.134539" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:29.136758" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:28.525511" elapsed="0.615504">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.141535" elapsed="0.000049"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.142362" elapsed="0.000073"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.142754" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.143067" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.143371" elapsed="0.000065"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.143799" elapsed="0.000032"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.144096" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.144570" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:29.144237" elapsed="0.000425"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:29.144206" elapsed="0.000495"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.145053" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:29.144782" elapsed="0.000356"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:29.144758" elapsed="0.000416"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:29.145527" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:29.145251" elapsed="0.000359"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:29.145228" elapsed="0.000416"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:29.142082" elapsed="0.003596"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:29.141672" elapsed="0.004045"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:28.524474" elapsed="0.621531">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:30.153244" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:30.354689" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:30.757115" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:30.759324" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:30.148416" elapsed="0.615812">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.764707" elapsed="0.000046"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.765421" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.765721" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.766001" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.766281" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.766582" elapsed="0.000094"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.766986" elapsed="0.000032"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.767410" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:30.767128" elapsed="0.000375"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:30.767098" elapsed="0.000445"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.767871" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:30.767623" elapsed="0.000325"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:30.767600" elapsed="0.000383"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:30.768303" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:30.768057" elapsed="0.000444"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:30.768036" elapsed="0.000504"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:30.765152" elapsed="0.003421"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:30.764837" elapsed="0.003773"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:30.147479" elapsed="0.621288">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:31.776581" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:31.978444" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:32.381167" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:32.384073" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:31.771350" elapsed="0.617895">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.389927" elapsed="0.000067"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.391634" elapsed="0.000075"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.392219" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.392618" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.392814" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.393008" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.393206" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.393514" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:32.393311" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:32.393286" elapsed="0.000314"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.393824" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:32.393656" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:32.393641" elapsed="0.000263"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:32.394124" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:32.393956" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:32.393941" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:32.391089" elapsed="0.003138"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:32.390117" elapsed="0.004139"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:31.770169" elapsed="0.624232">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:33.399670" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:33.601436" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:34.003596" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:34.006282" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:33.396119" elapsed="0.615846">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.012675" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.013344" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.013654" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.013927" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.014194" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.014544" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.014823" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.015197" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:34.014956" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:34.014926" elapsed="0.000382"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.015639" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:34.015400" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:34.015361" elapsed="0.000420"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:34.016098" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:34.015861" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:34.015838" elapsed="0.000372"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:34.013106" elapsed="0.003135"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:34.012802" elapsed="0.003477"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:33.395458" elapsed="0.621016">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:35.024762" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:35.226565" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:35.629473" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:35.631797" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:35.020333" elapsed="0.616324">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.637304" elapsed="0.000054"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.638188" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.638586" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.638949" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.639436" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.639813" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.640173" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.640742" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:35.640353" elapsed="0.000500"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:35.640313" elapsed="0.000590"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.641250" elapsed="0.000119"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:35.640991" elapsed="0.000454"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:35.640965" elapsed="0.000516"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:35.641803" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:35.641562" elapsed="0.000296"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:35.641537" elapsed="0.000344"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:35.637870" elapsed="0.004034"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:35.637486" elapsed="0.004447"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:35.018457" elapsed="0.623608">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:36.649034" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:36.850694" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:37.253162" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:37.256031" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:36.644488" elapsed="0.616783">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.261913" elapsed="0.000061"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.262966" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.263441" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.263951" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.264506" elapsed="0.000070"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.265022" elapsed="0.000049"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.265566" elapsed="0.000051"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.266286" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:37.265790" elapsed="0.000656"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:37.265739" elapsed="0.000766"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.266885" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:37.266627" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:37.266592" elapsed="0.000399"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:37.267327" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:37.267134" elapsed="0.000269"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:37.267116" elapsed="0.000313"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:37.262593" elapsed="0.004860"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:37.262091" elapsed="0.005391"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:36.643501" elapsed="0.624104">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:38.274312" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:38.475922" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:38.878225" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:38.880595" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:38.269912" elapsed="0.615271">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.885686" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.886409" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.886729" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.887154" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.887616" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.887999" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.888534" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.888874" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:38.888666" elapsed="0.000269"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:38.888638" elapsed="0.000323"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.889186" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:38.889018" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:38.889002" elapsed="0.000263"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:38.889499" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:38.889315" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:38.889300" elapsed="0.000280"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:38.886136" elapsed="0.003467"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:38.885817" elapsed="0.003813"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:38.268961" elapsed="0.620794">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:39.896320" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:40.098053" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:40.500909" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:40.502725" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:39.892487" elapsed="0.613767">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.506735" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.507438" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.507738" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.508078" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.508370" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.508687" elapsed="0.000043"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.509017" elapsed="0.000049"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.509612" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:40.509219" elapsed="0.000507"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:40.509175" elapsed="0.000601"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.510247" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:40.509887" elapsed="0.000472"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:40.509855" elapsed="0.000576"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:40.510874" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:40.510533" elapsed="0.000446"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:40.510503" elapsed="0.000520"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:40.507168" elapsed="0.003898"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:40.506862" elapsed="0.004255"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:39.891351" elapsed="0.619984">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:41.519680" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:41.721633" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:42.123955" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:42.126606" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:41.513853" elapsed="0.618341">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.132897" elapsed="0.000065"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.133966" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.134472" elapsed="0.000148"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.135038" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.135543" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.135986" elapsed="0.000048"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.136463" elapsed="0.000049"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.137098" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:42.136671" elapsed="0.000487"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:42.136628" elapsed="0.000557"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.137427" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:42.137240" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:42.137224" elapsed="0.000283"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:42.137731" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:42.137561" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:42.137545" elapsed="0.000265"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:42.133567" elapsed="0.004266"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:42.133090" elapsed="0.004772"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:41.512854" elapsed="0.625118">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:43.145007" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:43.347897" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:43.751831" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:43.754775" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:43.140332" elapsed="0.618934">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.759700" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.760335" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.760636" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.760911" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.761183" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.761472" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.761777" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.762145" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:43.761905" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:43.761877" elapsed="0.000386"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.762658" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:43.762336" elapsed="0.000401"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:43.762315" elapsed="0.000456"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:43.763080" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:43.762846" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:43.762823" elapsed="0.000366"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:43.760102" elapsed="0.003120"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:43.759820" elapsed="0.003438"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:43.139289" elapsed="0.624133">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:44.769655" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:44.971496" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:45.374022" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:45.376551" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:44.765711" elapsed="0.617459">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.383676" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.384350" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.384670" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.384959" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.385246" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.385563" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.385855" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.386254" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:45.385995" elapsed="0.000339"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:45.385965" elapsed="0.000407"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.386817" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:45.386514" elapsed="0.000387"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:45.386489" elapsed="0.000447"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:45.387253" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:45.387014" elapsed="0.000294"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:45.386990" elapsed="0.000342"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:45.384102" elapsed="0.003254"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:45.383801" elapsed="0.003607"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:44.764767" elapsed="0.622817">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:46.394972" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:46.596987" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:46.999496" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:47.002064" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:46.390301" elapsed="0.615855">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.006606" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.007260" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.007617" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.007895" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.008164" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.008452" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.008737" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.009117" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:47.008872" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:47.008842" elapsed="0.000389"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.009568" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:47.009307" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:47.009285" elapsed="0.000395"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.009987" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:18:47.009754" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:18:47.009732" elapsed="0.000364"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:18:47.007023" elapsed="0.003105"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:18:47.006730" elapsed="0.003434"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:46.389415" elapsed="0.620901">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:18:47.010514" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>30s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Linear Topology</arg>
<arg>${SWITCHES}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:18:15.536496" elapsed="31.474166">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Linear Topology.</doc>
<status status="FAIL" start="2026-04-17T03:18:15.536000" elapsed="31.474913">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t6" name="Check Flows In Operational DS" line="65">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:47.017555" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:47.219265" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:47.622047" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:47.624648" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:47.013544" elapsed="0.616169">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.630142" elapsed="0.000044"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.630482" elapsed="0.000041"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:47.630808" elapsed="0.000032"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:47.012984" elapsed="0.618015">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:48.637775" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:48.840316" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:49.243271" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:49.245756" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:48.632932" elapsed="0.617596">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:49.250966" elapsed="0.000044"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:49.251312" elapsed="0.000033"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:49.251652" elapsed="0.000032"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:48.631938" elapsed="0.619906">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:50.262246" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:50.463683" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:50.866430" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:50.868812" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:50.253927" elapsed="0.620359">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:50.874840" elapsed="0.000041"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:50.875238" elapsed="0.000031"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:50.875547" elapsed="0.000030"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:50.252832" elapsed="0.622893">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:51.882694" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:52.084128" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:52.486720" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:52.488804" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:51.877858" elapsed="0.614193">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:52.492581" elapsed="0.000057"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:52.492909" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:52.493208" elapsed="0.000029"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:51.876764" elapsed="0.616652">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:53.499281" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:53.700983" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:54.104095" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:54.106130" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:53.495099" elapsed="0.616032">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:54.111793" elapsed="0.000064"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:54.112258" elapsed="0.000049"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:54.112749" elapsed="0.000047"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:53.494276" elapsed="0.618759">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:55.120540" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:55.323064" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:55.725313" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:55.727910" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:55.115201" elapsed="0.619030">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:55.734942" elapsed="0.000069"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:55.735453" elapsed="0.000062"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:55.735997" elapsed="0.000050"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:55.114108" elapsed="0.622113">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:56.743744" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:56.945162" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:57.347230" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:57.349818" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:56.738306" elapsed="0.614979">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:57.353732" elapsed="0.000042"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:57.354037" elapsed="0.000053"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:57.354410" elapsed="0.000033"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:56.737216" elapsed="0.617379">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:58.362167" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:58.564339" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:58.966467" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:58.969225" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:58.356646" elapsed="0.618670">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:58.976420" elapsed="0.000088"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:58.976960" elapsed="0.000052"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:18:58.977480" elapsed="0.000055"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:58.355575" elapsed="0.622233">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:18:59.984354" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:00.185838" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:00.588246" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:00.590951" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:18:59.980243" elapsed="0.617390">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:00.598314" elapsed="0.000104"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:00.598956" elapsed="0.000059"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:00.599604" elapsed="0.000067"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:18:59.979087" elapsed="0.620890">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:01.606659" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:01.808329" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:02.210737" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:02.213040" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:01.602060" elapsed="0.616822">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:02.219470" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:02.219809" elapsed="0.000034"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:02.220135" elapsed="0.000035"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:01.601071" elapsed="0.619259">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:03.224565" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:03.426942" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:03.829538" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:03.831772" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:03.221470" elapsed="0.615305">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:03.837366" elapsed="0.000097"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:03.837863" elapsed="0.000047"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:03.838370" elapsed="0.000077"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:03.220958" elapsed="0.617718">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:04.843779" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:05.045469" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:05.448210" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:05.450896" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:04.840506" elapsed="0.616200">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:05.457379" elapsed="0.000102"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:05.457921" elapsed="0.000051"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:05.458443" elapsed="0.000052"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:04.839420" elapsed="0.619325">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:06.465576" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:06.667584" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:07.070231" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:07.072933" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:06.460748" elapsed="0.615592">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:07.076897" elapsed="0.000045"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:07.077216" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:07.077672" elapsed="0.000037"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:06.459755" elapsed="0.618125">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:08.086076" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:08.287993" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:08.690630" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:08.693521" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:08.079858" elapsed="0.618402">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:08.698749" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:08.699062" elapsed="0.000034"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:08.699371" elapsed="0.000063"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:08.078877" elapsed="0.620751">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:09.705240" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:09.906992" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:10.309552" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:10.312134" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:09.701116" elapsed="0.616787">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:10.318611" elapsed="0.000074"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:10.319155" elapsed="0.000059"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:10.319700" elapsed="0.000025"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:09.700357" elapsed="0.619485">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:11.325626" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:11.527202" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:11.930282" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:11.932801" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:11.321699" elapsed="0.616029">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:11.938214" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:11.938560" elapsed="0.000035"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:11.938877" elapsed="0.000033"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:11.320802" elapsed="0.618278">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:12.945897" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:13.147428" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:13.549908" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:13.552333" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:12.941082" elapsed="0.617122">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:13.558572" elapsed="0.000034"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:13.558792" elapsed="0.000022"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:13.559001" elapsed="0.000022"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:12.940111" elapsed="0.619029">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:14.566160" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:14.767544" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:15.170308" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:15.173511" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:14.561204" elapsed="0.618683">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:15.180328" elapsed="0.000035"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:15.180572" elapsed="0.000023"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:15.180785" elapsed="0.000022"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:14.560109" elapsed="0.620820">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:16.187915" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:16.389462" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:16.791773" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:16.793766" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:16.182941" elapsed="0.614121">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:16.797491" elapsed="0.000041"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:16.797786" elapsed="0.000030"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:16.798073" elapsed="0.000058"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:16.181943" elapsed="0.616339">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:17.805124" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:18.006684" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:18.408718" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:18.411090" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:17.800131" elapsed="0.617392">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:18.418104" elapsed="0.000036"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:18.418332" elapsed="0.000024"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:18.418566" elapsed="0.000025"/>
</kw>
<arg>${all_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:17.799187" elapsed="0.619520">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:19:18.418815" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>30s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Number Of Flows</arg>
<arg>${all_flows}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:18:47.011982" elapsed="31.407001">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Groups after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:18:47.011210" elapsed="31.407968">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t7" name="Check Groups In Operational DS" line="69">
<kw name="Check Number Of Groups" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:18.423268" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:18.624568" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:19.026673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:19.029085" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:18.420507" elapsed="0.614153">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:19.035357" elapsed="0.000101"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${group_count}</var>
<arg>${resp.text}</arg>
<arg>"group-type"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:19.035876" elapsed="0.000075"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${group_count}</arg>
<arg>${groups}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:19.036517" elapsed="0.000056"/>
</kw>
<arg>${all_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:19:18.420100" elapsed="0.616714">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:19:18.419451" elapsed="0.617780">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t8" name="Check Flows In Switch" line="73">
<kw name="Check Flows In Mininet" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:19:19.039284" elapsed="0.000184"/>
</kw>
<status status="PASS" start="2026-04-17T03:19:19.039029" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:19.039002" elapsed="0.000550"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.040079" level="INFO">${cmd} = dpctl dump-aggregate -O OpenFlow13</msg>
<var>${cmd}</var>
<arg>dpctl dump-aggregate -O OpenFlow13</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:19:19.039737" elapsed="0.000372"/>
</kw>
<kw name="Send Mininet Command" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:19:19.041111" elapsed="0.000144"/>
</kw>
<status status="PASS" start="2026-04-17T03:19:19.040837" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:19.040817" elapsed="0.000501"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.045652" level="INFO">dpctl dump-aggregate -O OpenFlow13</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:19:19.041478" elapsed="0.004315"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.138132" level="INFO">*** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s3 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
mininet&gt;</msg>
<msg time="2026-04-17T03:19:19.138457" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ----------------------------...</msg>
<var>${output}</var>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:19:19.046169" elapsed="0.092336"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:19:19.138627" elapsed="0.000071"/>
</return>
<msg time="2026-04-17T03:19:19.139004" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ----------------------------...</msg>
<var>${output}</var>
<arg>${mininet_conn}</arg>
<arg>${cmd}</arg>
<doc>Sends Command dpctl dump-aggregate -O OpenFlow13 to Mininet session 5 and returns read buffer response.</doc>
<status status="PASS" start="2026-04-17T03:19:19.040470" elapsed="0.098576"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-04-17T03:19:19.139785" level="INFO">${flows} = ['0', '0', '0']</msg>
<var>${flows}</var>
<arg>${output}</arg>
<arg>(?&lt;=flow_count\=).*?(?=\r)</arg>
<doc>Returns a list of all non-overlapping matches in the given string.</doc>
<status status="PASS" start="2026-04-17T03:19:19.139324" elapsed="0.000491"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.140473" level="INFO">${total_flows} = 0</msg>
<var>${total_flows}</var>
<arg>sum(map(int, ${flows}))</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:19:19.139990" elapsed="0.000513"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.141740" level="FAIL">0.0 != 303.0</msg>
<arg>${total_flows}</arg>
<arg>${flow_count}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="FAIL" start="2026-04-17T03:19:19.140791" elapsed="0.001036">0.0 != 303.0</status>
</kw>
<arg>${mininet_conn_id}</arg>
<arg>${all_flows}</arg>
<doc>Sync with mininet to match exact number of flows</doc>
<status status="FAIL" start="2026-04-17T03:19:19.038617" elapsed="0.103339">0.0 != 303.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:19:19.037797" elapsed="0.104320">0.0 != 303.0</status>
</test>
<test id="s1-s5-s1-t9" name="Disconnect Mininet" line="77">
<kw name="Disconnect Controller Mininet">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.143847" level="INFO">${rule} = OUTPUT -p all --source 10.30.170.85 --destination 10.30.171.160 -j DROP</msg>
<var>${rule}</var>
<arg>OUTPUT -p all --source ${ODL_SYSTEM_IP} --destination ${TOOLS_SYSTEM_IP} -j DROP</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:19:19.143456" elapsed="0.000418"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.144480" level="INFO">${command} = sudo /sbin/iptables -I OUTPUT -p all --source 10.30.170.85 --destination 10.30.171.160 -j DROP</msg>
<var>${command}</var>
<arg>'${action}'=='restore'</arg>
<arg>sudo /sbin/iptables -D ${rule}</arg>
<arg>sudo /sbin/iptables -I ${rule}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:19:19.144055" elapsed="0.000453"/>
</kw>
<kw name="Run Command On Controller" 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-04-17T03:19:19.146874" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:19.146561" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:19.146532" elapsed="0.000427"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.147252" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:19:19.147377" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:19:19.147115" elapsed="0.000310"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.147992" level="INFO">Attempting to execute command "sudo /sbin/iptables -I OUTPUT -p all --source 10.30.170.85 --destination 10.30.171.160 -j DROP" on remote system "10.30.170.85" 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-04-17T03:19:19.147585" elapsed="0.000457"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.148634" level="INFO">${conn_id} = 6</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-04-17T03:19:19.148204" elapsed="0.000465"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.149721" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:19:19.149803" 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-04-17T03:19:19.149411" elapsed="0.000417"/>
</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-04-17T03:19:19.149999" elapsed="0.000374"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.151325" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:19:19.880093" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:19:19 UTC 2026

  System load:  0.02               Processes:             120
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:17:52 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:19:19.150986" elapsed="0.729269"/>
</kw>
<msg time="2026-04-17T03:19:19.880342" 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="PASS" start="2026-04-17T03:19:19.150575" elapsed="0.729870"/>
</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="PASS" start="2026-04-17T03:19:19.148964" elapsed="0.731704"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.881170" level="INFO">Executing command 'sudo /sbin/iptables -I OUTPUT -p all --source 10.30.170.85 --destination 10.30.171.160 -j DROP'.</msg>
<msg time="2026-04-17T03:19:19.903903" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:19:19.904261" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:19:19.904411" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:19:19.880913" elapsed="0.023557"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:19:19.904890" elapsed="0.000475"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.906528" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:19:19.905860" elapsed="0.000769"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:19:19.907107" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:19:19.906807" elapsed="0.000409"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:19.906757" elapsed="0.000510"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:19:19.907670" elapsed="0.000064"/>
</return>
<status status="PASS" start="2026-04-17T03:19:19.907422" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:19.907357" elapsed="0.000509"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:19:19.907943" elapsed="0.000033"/>
</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-04-17T03:19:19.913046" elapsed="0.000272"/>
</kw>
<msg time="2026-04-17T03:19:19.913426" 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-04-17T03:19:19.912180" elapsed="0.001367"/>
</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-04-17T03:19:19.913841" elapsed="0.000039"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:19.914135" elapsed="0.000035"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:19:19.908743" elapsed="0.005529"/>
</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="PASS" start="2026-04-17T03:19:19.145960" elapsed="0.768466"/>
</kw>
<msg time="2026-04-17T03:19:19.914506" 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="PASS" start="2026-04-17T03:19:19.145311" elapsed="0.769261"/>
</kw>
<arg>cmd=${command}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:19:19.144723" elapsed="0.769979"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.915331" level="INFO">${command} = sudo /sbin/iptables -L -n</msg>
<var>${command}</var>
<arg>sudo /sbin/iptables -L -n</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:19:19.914922" elapsed="0.000447"/>
</kw>
<kw name="Run Command On Controller" 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-04-17T03:19:19.918585" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:19.918142" elapsed="0.000541"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:19.918113" elapsed="0.000605"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.919105" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:19:19.919249" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:19:19.918934" elapsed="0.000352"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.920063" level="INFO">Attempting to execute command "sudo /sbin/iptables -L -n" on remote system "10.30.170.85" 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-04-17T03:19:19.919521" elapsed="0.000607"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.920977" level="INFO">${conn_id} = 7</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-04-17T03:19:19.920346" elapsed="0.000669"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:19:19.921998" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:19:19.922096" 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-04-17T03:19:19.921690" elapsed="0.000432"/>
</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-04-17T03:19:19.922362" elapsed="0.000351"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:19:19.923734" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:19:20.229997" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:19:19 UTC 2026

  System load:  0.02               Processes:             120
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:19:19 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:19:19.923402" elapsed="0.306751"/>
</kw>
<msg time="2026-04-17T03:19:20.230239" 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="PASS" start="2026-04-17T03:19:19.922930" elapsed="0.307389"/>
</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="PASS" start="2026-04-17T03:19:19.921258" elapsed="0.309198"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:19:20.231025" level="INFO">Executing command 'sudo /sbin/iptables -L -n'.</msg>
<msg time="2026-04-17T03:19:20.263872" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:19:20.264138" level="INFO">${stdout} = Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  -...</msg>
<msg time="2026-04-17T03:19:20.264241" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:19:20.230752" elapsed="0.033540"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:19:20.264846" elapsed="0.000491"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:20.266699" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:19:20.265938" elapsed="0.000873"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:19:20.267302" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:19:20.267000" elapsed="0.000448"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:20.266945" elapsed="0.000600"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:19:20.268006" elapsed="0.000063"/>
</return>
<status status="PASS" start="2026-04-17T03:19:20.267732" elapsed="0.000413"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:20.267671" elapsed="0.000531"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:19:20.268278" elapsed="0.000031"/>
</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-04-17T03:19:20.274901" elapsed="0.000203"/>
</kw>
<msg time="2026-04-17T03:19:20.275166" 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-04-17T03:19:20.274100" elapsed="0.001154"/>
</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-04-17T03:19:20.275500" elapsed="0.000032"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:20.275728" 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-04-17T03:19:20.269144" elapsed="0.006700"/>
</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="PASS" start="2026-04-17T03:19:19.917341" elapsed="0.358629"/>
</kw>
<msg time="2026-04-17T03:19:20.276055" 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="PASS" start="2026-04-17T03:19:19.916487" elapsed="0.359634"/>
</kw>
<msg time="2026-04-17T03:19:20.276277" level="INFO">${output} = Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  -...</msg>
<var>${output}</var>
<arg>cmd=${command}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:19:19.915688" elapsed="0.360626"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:20.276936" level="INFO">Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  --  0.0.0.0/0            0.0.0.0/0           
DOCKER-FORWARD  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  10.30.170.85         10.30.171.160       

Chain DOCKER (1 references)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-BRIDGE (1 references)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-CT (1 references)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED

Chain DOCKER-FORWARD (1 references)
target     prot opt source               destination         
DOCKER-CT  all  --  0.0.0.0/0            0.0.0.0/0           
DOCKER-INTERNAL  all  --  0.0.0.0/0            0.0.0.0/0           
DOCKER-BRIDGE  all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-INTERNAL (1 references)
target     prot opt source               destination         

Chain DOCKER-USER (1 references)
target     prot opt source               destination         </msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:19:20.276579" elapsed="0.000539"/>
</kw>
<doc>Break and restore controller to mininet connection via iptables.</doc>
<status status="PASS" start="2026-04-17T03:19:19.143043" elapsed="1.134158"/>
</kw>
<doc>Disconnect Mininet.</doc>
<status status="PASS" start="2026-04-17T03:19:19.142513" elapsed="1.134845"/>
</test>
<test id="s1-s5-s1-t10" name="Check No Switches After Disconnect" line="81">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:20.282915" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:20.484576" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:20.887215" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:20.889604" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:20.279686" elapsed="0.617367">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:20.897492" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:20.897969" elapsed="0.000032"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:20.897729" elapsed="0.000324"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:20.897625" elapsed="0.000468"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:20.279201" elapsed="0.619041">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:21.905412" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:22.107159" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:22.509743" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:22.512268" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:21.900475" elapsed="0.615129">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:22.516030" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:22.516606" elapsed="0.000035"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:22.516287" elapsed="0.000410"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:22.516151" elapsed="0.000586"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:21.899319" elapsed="0.617565">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:23.523841" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:23.725884" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:24.128706" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:24.131087" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:23.518950" elapsed="0.617364">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:24.137199" elapsed="0.000084"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:24.138216" elapsed="0.000070"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:24.137685" elapsed="0.000737"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:24.137483" elapsed="0.001011"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:23.517957" elapsed="0.620774">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:25.146464" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:25.349465" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:25.752235" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:25.754582" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:25.142030" elapsed="0.616990">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:25.759474" elapsed="0.000047"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:25.759934" elapsed="0.000033"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:25.759699" elapsed="0.000319"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:25.759601" elapsed="0.000456"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:25.140108" elapsed="0.620098">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:26.766600" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:26.968149" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:27.370862" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:27.373475" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:26.762443" elapsed="0.617265">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:27.380333" elapsed="0.000054"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:27.380866" elapsed="0.000033"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:27.380614" elapsed="0.000340"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:27.380502" elapsed="0.000497"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:26.761267" elapsed="0.619888">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:28.386806" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:28.588598" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:28.991784" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:28.994227" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:28.383122" elapsed="0.616927">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:29.000549" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:29.001076" elapsed="0.000041"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:29.000789" elapsed="0.000392"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:29.000682" elapsed="0.000549"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:28.382182" elapsed="0.619263">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:30.009214" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:30.211757" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:30.614888" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:30.617173" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:30.003689" elapsed="0.618007">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:30.622528" elapsed="0.000085"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:30.623604" elapsed="0.000046"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:30.622965" elapsed="0.000737"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:30.622773" elapsed="0.000969"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:30.002674" elapsed="0.621218">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:31.631951" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:31.834621" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:32.237898" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:32.240554" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:31.626155" elapsed="0.619498">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:32.246274" elapsed="0.000062"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:32.247029" elapsed="0.000053"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:32.246647" elapsed="0.000516"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:32.246492" elapsed="0.000733"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:31.625051" elapsed="0.622495">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:33.254759" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:33.456599" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:33.858772" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:33.860812" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:33.249733" elapsed="0.614321">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:33.864576" elapsed="0.000092"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:33.865136" elapsed="0.000040"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:33.864867" elapsed="0.000366"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:33.864761" elapsed="0.000515"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:33.248797" elapsed="0.616669">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:34.872718" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:35.074935" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:35.478934" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:35.481725" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:34.867716" elapsed="0.620063">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:35.488224" elapsed="0.000036"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:35.488601" elapsed="0.000024"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:35.488426" elapsed="0.000238"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:35.488323" elapsed="0.000373"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:34.866622" elapsed="0.622203">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:36.496273" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:36.698169" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:37.101090" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:37.103810" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:36.491474" elapsed="0.616248">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:37.108136" elapsed="0.000040"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:37.108674" elapsed="0.000034"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:37.108354" elapsed="0.000406"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:37.108255" elapsed="0.000544"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:36.490173" elapsed="0.618775">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:38.115898" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:38.317954" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:38.721715" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:38.724233" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:38.110966" elapsed="0.617162">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:38.728584" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:38.729040" elapsed="0.000034"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:38.728805" elapsed="0.000319"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:38.728706" elapsed="0.000457"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:38.110005" elapsed="0.619405">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:39.734734" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:39.936691" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:40.339283" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:40.341258" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:39.731148" elapsed="0.613592">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:40.345203" elapsed="0.000047"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:40.345711" elapsed="0.000034"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:40.345458" elapsed="0.000340"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:40.345332" elapsed="0.000509"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:39.730310" elapsed="0.615730">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:41.352352" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:41.554167" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:41.957093" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:41.960505" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:41.348083" elapsed="0.617134">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:41.965641" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:41.966088" elapsed="0.000033"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:41.965855" elapsed="0.000316"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:41.965759" elapsed="0.000451"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:41.347107" elapsed="0.619249">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:42.971269" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:43.172796" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:43.575562" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:43.578240" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:42.967843" elapsed="0.616215">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:43.584748" elapsed="0.000066"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:43.585586" elapsed="0.000063"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:43.585095" elapsed="0.000669"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:43.584942" elapsed="0.000895"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:42.967164" elapsed="0.618917">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:44.594184" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:44.796667" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:45.199503" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:45.202198" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:44.588428" elapsed="0.619454">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:45.208486" elapsed="0.000059"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:45.209120" elapsed="0.000046"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:45.208782" elapsed="0.000453"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:45.208652" elapsed="0.000636"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:44.587291" elapsed="0.622232">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:46.217006" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:46.418888" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:46.822049" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:46.824711" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:46.211630" elapsed="0.618548">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:46.830748" elapsed="0.000033"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:46.831090" elapsed="0.000023"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:46.830921" elapsed="0.000228"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:46.830841" elapsed="0.000336"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:46.210682" elapsed="0.620606">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:47.838632" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:48.040511" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:48.443338" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:48.445549" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:47.833422" elapsed="0.615982">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:48.449843" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:48.450320" elapsed="0.000033"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:48.450073" elapsed="0.000359"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:48.449968" elapsed="0.000508"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:47.832358" elapsed="0.618275">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:49.457751" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:49.659836" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:50.062359" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:50.064786" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:49.452680" elapsed="0.616667">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:50.069818" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:50.070292" elapsed="0.000032"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:50.070043" elapsed="0.000335"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:50.069940" elapsed="0.000506"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:49.451696" elapsed="0.618910">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:51.076830" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:51.278616" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:51.681116" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:51.684519" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:51.073021" elapsed="0.615797">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:51.689276" elapsed="0.000054"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:51.689897" elapsed="0.000046"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:51.689578" elapsed="0.000436"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:51.689450" elapsed="0.000616"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:19:51.071676" elapsed="0.618579">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:19:51.690475" level="FAIL">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>30s</arg>
<arg>1s</arg>
<arg>FlowLib.Check No Switches In Topology</arg>
<arg>${SWITCHES}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:19:20.278413" elapsed="31.412241">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check no switches in topology.</doc>
<status status="FAIL" start="2026-04-17T03:19:20.277735" elapsed="31.413255">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t11" name="Reconnect Mininet" line="85">
<kw name="Disconnect Controller Mininet">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:19:51.693871" level="INFO">${rule} = OUTPUT -p all --source 10.30.170.85 --destination 10.30.171.160 -j DROP</msg>
<var>${rule}</var>
<arg>OUTPUT -p all --source ${ODL_SYSTEM_IP} --destination ${TOOLS_SYSTEM_IP} -j DROP</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:19:51.693148" elapsed="0.000762"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:19:51.694728" level="INFO">${command} = sudo /sbin/iptables -D OUTPUT -p all --source 10.30.170.85 --destination 10.30.171.160 -j DROP</msg>
<var>${command}</var>
<arg>'${action}'=='restore'</arg>
<arg>sudo /sbin/iptables -D ${rule}</arg>
<arg>sudo /sbin/iptables -I ${rule}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:19:51.694148" elapsed="0.000618"/>
</kw>
<kw name="Run Command On Controller" 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-04-17T03:19:51.697785" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:51.697377" elapsed="0.000475"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:51.697343" elapsed="0.000538"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:19:51.698213" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:19:51.698326" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:19:51.698068" elapsed="0.000286"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:51.698949" level="INFO">Attempting to execute command "sudo /sbin/iptables -D OUTPUT -p all --source 10.30.170.85 --destination 10.30.171.160 -j DROP" on remote system "10.30.170.85" 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-04-17T03:19:51.698533" elapsed="0.000469"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:19:51.699829" level="INFO">${conn_id} = 8</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-04-17T03:19:51.699280" elapsed="0.000587"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:19:51.701181" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:19:51.701294" 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-04-17T03:19:51.700752" elapsed="0.000576"/>
</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-04-17T03:19:51.701567" elapsed="0.000463"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:19:51.703206" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:19:52.229871" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:19:19 UTC 2026

  System load:  0.02               Processes:             120
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:19:20 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:19:51.702784" elapsed="0.527269"/>
</kw>
<msg time="2026-04-17T03:19:52.230140" 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="PASS" start="2026-04-17T03:19:51.702261" elapsed="0.527964"/>
</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="PASS" start="2026-04-17T03:19:51.700175" elapsed="0.530177"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:19:52.230889" level="INFO">Executing command 'sudo /sbin/iptables -D OUTPUT -p all --source 10.30.170.85 --destination 10.30.171.160 -j DROP'.</msg>
<msg time="2026-04-17T03:19:52.274203" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:19:52.274559" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:19:52.274663" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:19:52.230630" elapsed="0.044085"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:19:52.275171" elapsed="0.000589"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:52.276996" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:19:52.276248" elapsed="0.000895"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:19:52.277831" elapsed="0.000040"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:19:52.277471" elapsed="0.000480"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:52.277360" elapsed="0.000646"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:19:52.278444" elapsed="0.000073"/>
</return>
<status status="PASS" start="2026-04-17T03:19:52.278125" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:52.278091" elapsed="0.000560"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:19:52.278728" elapsed="0.000031"/>
</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-04-17T03:19:52.285196" elapsed="0.000176"/>
</kw>
<msg time="2026-04-17T03:19:52.285449" 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-04-17T03:19:52.284562" elapsed="0.000969"/>
</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-04-17T03:19:52.285723" elapsed="0.000049"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:52.285966" elapsed="0.000028"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:19:52.279752" elapsed="0.006313"/>
</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="PASS" start="2026-04-17T03:19:51.696624" elapsed="0.589539"/>
</kw>
<msg time="2026-04-17T03:19:52.286220" 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="PASS" start="2026-04-17T03:19:51.695832" elapsed="0.590455"/>
</kw>
<arg>cmd=${command}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:19:51.695060" elapsed="0.591312"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:19:52.286921" level="INFO">${command} = sudo /sbin/iptables -L -n</msg>
<var>${command}</var>
<arg>sudo /sbin/iptables -L -n</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:19:52.286561" elapsed="0.000388"/>
</kw>
<kw name="Run Command On Controller" 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-04-17T03:19:52.289328" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:52.288967" elapsed="0.000435"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:52.288944" elapsed="0.000485"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:19:52.289716" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:19:52.289836" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:19:52.289583" elapsed="0.000282"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:52.290461" level="INFO">Attempting to execute command "sudo /sbin/iptables -L -n" on remote system "10.30.170.85" 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-04-17T03:19:52.290019" elapsed="0.000492"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:19:52.291065" level="INFO">${conn_id} = 9</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-04-17T03:19:52.290672" elapsed="0.000419"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:19:52.292087" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:19:52.292173" 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-04-17T03:19:52.291733" elapsed="0.000465"/>
</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-04-17T03:19:52.292358" elapsed="0.000345"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:19:52.293831" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:19:52.627106" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:19:19 UTC 2026

  System load:  0.02               Processes:             120
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:19:52 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:19:52.293378" elapsed="0.333922"/>
</kw>
<msg time="2026-04-17T03:19:52.627447" 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="PASS" start="2026-04-17T03:19:52.292878" elapsed="0.334680"/>
</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="PASS" start="2026-04-17T03:19:52.291313" elapsed="0.336405"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:19:52.628412" level="INFO">Executing command 'sudo /sbin/iptables -L -n'.</msg>
<msg time="2026-04-17T03:19:52.650990" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:19:52.651149" level="INFO">${stdout} = Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  -...</msg>
<msg time="2026-04-17T03:19:52.651198" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:19:52.628057" elapsed="0.023166"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:19:52.651458" elapsed="0.000283"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:52.652300" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:19:52.651979" elapsed="0.000366"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:19:52.652623" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:19:52.652467" elapsed="0.000209"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:52.652438" elapsed="0.000263"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:19:52.652862" elapsed="0.000033"/>
</return>
<status status="PASS" start="2026-04-17T03:19:52.652755" elapsed="0.000173"/>
</branch>
<status status="PASS" start="2026-04-17T03:19:52.652740" elapsed="0.000213"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:19:52.652987" elapsed="0.000015"/>
</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-04-17T03:19:52.656895" elapsed="0.000211"/>
</kw>
<msg time="2026-04-17T03:19:52.657255" 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-04-17T03:19:52.656178" elapsed="0.001174"/>
</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-04-17T03:19:52.657620" elapsed="0.000034"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:52.657867" elapsed="0.000030"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:19:52.653326" elapsed="0.004665"/>
</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="PASS" start="2026-04-17T03:19:52.288412" elapsed="0.369731"/>
</kw>
<msg time="2026-04-17T03:19:52.658254" 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="PASS" start="2026-04-17T03:19:52.287802" elapsed="0.370522"/>
</kw>
<msg time="2026-04-17T03:19:52.658731" level="INFO">${output} = Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  -...</msg>
<var>${output}</var>
<arg>cmd=${command}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:19:52.287193" elapsed="0.371597"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:19:52.659437" level="INFO">Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DOCKER-USER  all  --  0.0.0.0/0            0.0.0.0/0           
DOCKER-FORWARD  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain DOCKER (1 references)
target     prot opt source               destination         
DROP       all  --  0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-BRIDGE (1 references)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-CT (1 references)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED

Chain DOCKER-FORWARD (1 references)
target     prot opt source               destination         
DOCKER-CT  all  --  0.0.0.0/0            0.0.0.0/0           
DOCKER-INTERNAL  all  --  0.0.0.0/0            0.0.0.0/0           
DOCKER-BRIDGE  all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain DOCKER-INTERNAL (1 references)
target     prot opt source               destination         

Chain DOCKER-USER (1 references)
target     prot opt source               destination         </msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:19:52.659031" elapsed="0.000492"/>
</kw>
<arg>restore</arg>
<doc>Break and restore controller to mininet connection via iptables.</doc>
<status status="PASS" start="2026-04-17T03:19:51.692425" elapsed="0.967183"/>
</kw>
<doc>Connect Mininet.</doc>
<status status="PASS" start="2026-04-17T03:19:51.691442" elapsed="0.968337"/>
</test>
<test id="s1-s5-s1-t12" name="Check Linear Topology After Mininet Reconnects" line="89">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:52.665020" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:52.866288" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:53.268826" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:53.273876" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:52.662490" elapsed="0.614651">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.277557" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.278193" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.278492" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.278772" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.279083" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.279475" elapsed="0.000033"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.279793" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.280225" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:53.279963" elapsed="0.000348"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:53.279933" elapsed="0.000415"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.280656" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:53.280440" elapsed="0.000282"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:53.280418" elapsed="0.000335"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:53.281058" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:53.280826" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:53.280804" elapsed="0.000362"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:53.277973" elapsed="0.003223"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:53.277686" elapsed="0.003548"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:19:52.661921" elapsed="0.619484">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:54.288493" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:54.490045" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:54.892633" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:54.894961" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:54.283650" elapsed="0.616854">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.901172" elapsed="0.000066"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.902250" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.902746" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.903213" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.903690" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.904148" elapsed="0.000049"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.904744" elapsed="0.000060"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.905139" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:54.904947" elapsed="0.000249"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:54.904922" elapsed="0.000298"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.905456" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:54.905273" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:54.905258" elapsed="0.000279"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:54.905756" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:54.905589" elapsed="0.000283"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:54.905574" elapsed="0.000323"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:54.901845" elapsed="0.004075"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:54.901360" elapsed="0.004586"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:19:54.282714" elapsed="0.623346">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:55.992633" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:56.194264" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:56.596802" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:56.598869" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:55.907626" elapsed="0.694456">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.602532" elapsed="0.000039"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.603179" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.603483" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.603757" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.604030" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.604338" elapsed="0.000035"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.604662" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.605119" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:56.604796" elapsed="0.000449"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:56.604767" elapsed="0.000516"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.605636" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:56.605365" elapsed="0.000353"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:56.605342" elapsed="0.000409"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:56.606119" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:56.605826" elapsed="0.000396"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:56.605803" elapsed="0.000488"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:56.602943" elapsed="0.003395"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:56.602648" elapsed="0.003756"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:19:55.907003" elapsed="0.699626">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:57.611844" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:57.813801" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:58.217207" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:58.219011" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:57.608488" elapsed="0.613906">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.222892" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.223940" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.224277" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.224605" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.224881" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.225154" elapsed="0.000037"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.225545" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.225926" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:58.225682" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:58.225654" elapsed="0.000388"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.226448" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:58.226122" elapsed="0.000440"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:58.226100" elapsed="0.000498"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:58.226928" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:58.226674" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:58.226652" elapsed="0.000395"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:58.223691" elapsed="0.003389"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:58.223021" elapsed="0.004096"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:19:57.607864" elapsed="0.619424">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:19:59.234431" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:59.436799" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:59.949689" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:59.952085" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:19:59.229764" elapsed="0.728236">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.958448" elapsed="0.000038"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.958970" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.959192" elapsed="0.000093"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.959494" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.959697" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.959895" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.960115" elapsed="0.000023"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.960418" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:59.960220" elapsed="0.000258"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:59.960198" elapsed="0.000308"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.960738" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:59.960561" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:59.960546" elapsed="0.000274"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:19:59.961052" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:19:59.960874" elapsed="0.000240"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:19:59.960858" elapsed="0.000280"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:19:59.958790" elapsed="0.002373"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:19:59.958559" elapsed="0.002632"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:19:59.228847" elapsed="0.732559">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:00.968906" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:01.173030" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:01.576996" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:01.579484" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:00.963657" elapsed="0.621118">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.585474" elapsed="0.000067"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.586499" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.586941" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.587367" elapsed="0.000076"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.587827" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.588251" elapsed="0.000044"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.589214" elapsed="0.000093"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.589989" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:01.589569" elapsed="0.000560"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:01.589513" elapsed="0.000676"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.590873" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:01.590314" elapsed="0.000737"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:01.590278" elapsed="0.000857"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:01.591754" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:01.591276" elapsed="0.000621"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:01.591236" elapsed="0.000717"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:01.586099" elapsed="0.005909"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:01.585663" elapsed="0.006414"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:00.962740" elapsed="0.629608">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:02.600038" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:02.802443" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:03.205236" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:03.207711" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:02.595055" elapsed="0.618116">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.213818" elapsed="0.000065"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.215370" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.215624" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.215834" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.216051" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.216276" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.216515" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.216828" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:03.216636" elapsed="0.000251"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:03.216605" elapsed="0.000310"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.217306" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:03.216972" elapsed="0.000395"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:03.216956" elapsed="0.000452"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:03.217653" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:03.217465" elapsed="0.000270"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:03.217449" elapsed="0.000312"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:03.215085" elapsed="0.002702"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:03.214008" elapsed="0.003806"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:02.594068" elapsed="0.623862">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:04.225096" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:04.427942" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:04.830910" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:04.832816" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:04.220371" elapsed="0.615356">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.836127" elapsed="0.000035"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.836766" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.837019" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.837261" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.837523" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.837768" elapsed="0.000025"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.838011" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.838361" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:04.838144" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:04.838118" elapsed="0.000367"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.838766" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:04.838549" elapsed="0.000285"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:04.838530" elapsed="0.000334"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:04.839148" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:04.838934" elapsed="0.000280"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:04.838913" elapsed="0.000329"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:04.836551" elapsed="0.002719"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:04.836229" elapsed="0.003074"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:04.219418" elapsed="0.620041">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:05.845113" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:06.047348" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:06.450534" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:06.454046" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:05.841096" elapsed="0.617934">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.459600" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.460458" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.460763" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.461063" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.461455" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.461813" elapsed="0.000048"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.462226" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.462683" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:06.462411" elapsed="0.000357"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:06.462355" elapsed="0.000453"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.463251" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:06.462889" elapsed="0.000459"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:06.462866" elapsed="0.000518"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:06.463647" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:06.463475" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:06.463458" elapsed="0.000267"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:06.460171" elapsed="0.003578"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:06.459836" elapsed="0.003941"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:05.840492" elapsed="0.623410">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:07.471055" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:07.672950" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:08.075630" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:08.078181" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:07.466825" elapsed="0.616974">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.084283" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.085319" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.085642" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.085929" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.086214" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.086523" elapsed="0.000032"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.086812" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.087232" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:08.086953" elapsed="0.000466"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:08.086922" elapsed="0.000538"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.087795" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:08.087542" elapsed="0.000335"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:08.087517" elapsed="0.000395"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:08.088236" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:08.087989" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:08.087966" elapsed="0.000385"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:08.085066" elapsed="0.003349"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:08.084432" elapsed="0.004028"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:07.465495" elapsed="0.623130">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:09.095827" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:09.297603" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:09.700299" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:09.702865" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:09.091003" elapsed="0.616333">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.707818" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.708537" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.708879" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.709204" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.709545" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.709835" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.710207" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.710683" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:09.710412" elapsed="0.000356"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:09.710353" elapsed="0.000452"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.711137" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:09.710887" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:09.710864" elapsed="0.000388"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:09.711601" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:09.711329" elapsed="0.000357"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:09.711306" elapsed="0.000415"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:09.708252" elapsed="0.003505"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:09.707942" elapsed="0.003857"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:09.090001" elapsed="0.621968">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:10.719799" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:10.921682" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:11.324311" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:11.326940" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:10.714438" elapsed="0.616878">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.331817" elapsed="0.000046"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.332519" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.332840" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.333158" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.333450" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.333721" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.334039" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.334495" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:11.334210" elapsed="0.000369"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:11.334170" elapsed="0.000446"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.334926" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:11.334690" elapsed="0.000350"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:11.334668" elapsed="0.000417"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:11.335436" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:11.335168" elapsed="0.000348"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:11.335143" elapsed="0.000405"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:11.332253" elapsed="0.003326"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:11.331945" elapsed="0.003674"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:10.713423" elapsed="0.622350">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:12.343029" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:12.544796" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:12.947452" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:12.949298" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:12.338206" elapsed="0.613811">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.952432" elapsed="0.000035"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.953015" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.953309" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.953645" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.953928" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.954239" elapsed="0.000036"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.954556" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.954938" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:12.954692" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:12.954664" elapsed="0.000386"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.955379" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:12.955125" elapsed="0.000357"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:12.955102" elapsed="0.000414"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:12.955845" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:12.955589" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:12.955567" elapsed="0.000390"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:12.952749" elapsed="0.003239"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:12.952526" elapsed="0.003498"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:12.337062" elapsed="0.619117">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:13.962622" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:14.164637" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:14.567011" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:14.569110" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:13.958497" elapsed="0.616317">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.575446" elapsed="0.000063"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.576572" elapsed="0.000072"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.577087" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.577624" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.577966" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.578171" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.578472" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.578766" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:14.578572" elapsed="0.000274"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:14.578551" elapsed="0.000331"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.579138" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:14.578942" elapsed="0.000259"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:14.578925" elapsed="0.000300"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:14.579467" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:14.579279" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:14.579264" elapsed="0.000284"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:14.576073" elapsed="0.003498"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:14.575628" elapsed="0.003971"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:13.957561" elapsed="0.622155">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:15.587845" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:15.789715" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:16.192039" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:16.194603" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:15.582978" elapsed="0.617279">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.200792" elapsed="0.000049"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.201501" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.201797" elapsed="0.000083"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.202150" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.202513" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.202813" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.203099" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.203567" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:16.203235" elapsed="0.000432"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:16.203207" elapsed="0.000500"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.204039" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:16.203787" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:16.203764" elapsed="0.000390"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:16.204501" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:16.204229" elapsed="0.000355"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:16.204207" elapsed="0.000423"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:16.201232" elapsed="0.003447"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:16.200923" elapsed="0.003916"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:15.581870" elapsed="0.623206">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:17.209822" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:17.411266" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:17.814349" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:17.816073" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:17.206652" elapsed="0.612576">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.819710" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.820371" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.820712" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.820998" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.821272" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.821655" elapsed="0.000042"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.822067" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.822486" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:17.822209" elapsed="0.000362"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:17.822178" elapsed="0.000435"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.822915" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:17.822690" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:17.822670" elapsed="0.000360"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:17.823361" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:17.823106" elapsed="0.000386"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:17.823084" elapsed="0.000438"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:17.820131" elapsed="0.003420"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:17.819834" elapsed="0.003751"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:17.206087" elapsed="0.617650">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:18.829433" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:19.031322" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:19.434209" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:19.436502" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:18.825442" elapsed="0.616389">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.442466" elapsed="0.000064"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.443558" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.444010" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.444473" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.444917" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.445458" elapsed="0.000049"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.445898" elapsed="0.000047"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.446260" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:19.446081" elapsed="0.000263"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:19.446056" elapsed="0.000342"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.446660" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:19.446460" elapsed="0.000265"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:19.446444" elapsed="0.000307"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:19.447011" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:19.446805" elapsed="0.000276"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:19.446790" elapsed="0.000316"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:19.443146" elapsed="0.003984"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:19.442679" elapsed="0.004480"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:18.824790" elapsed="0.622497">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:20.455171" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:20.657516" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:21.060045" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:21.062244" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:20.450178" elapsed="0.617308">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.068456" elapsed="0.000084"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.069356" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.069575" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.069809" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.070087" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.070281" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.070493" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.070768" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:21.070593" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:21.070571" elapsed="0.000280"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.071071" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:21.070906" elapsed="0.000219"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:21.070890" elapsed="0.000258"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:21.071363" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:21.071199" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:21.071184" elapsed="0.000272"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:21.069126" elapsed="0.002353"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:21.068671" elapsed="0.002837"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:20.449266" elapsed="0.622361">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:22.079494" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:22.281164" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:22.686912" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:22.689242" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:22.074232" elapsed="0.620646">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.695408" elapsed="0.000037"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.695914" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.696116" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.696313" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.696537" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.696734" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.696932" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.697211" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:22.697032" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:22.697009" elapsed="0.000304"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.697615" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:22.697397" elapsed="0.000283"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:22.697360" elapsed="0.000353"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:22.698069" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:22.697849" elapsed="0.000290"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:22.697830" elapsed="0.000338"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:20:22.695739" elapsed="0.002458"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:20:22.695508" elapsed="0.002723"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:20:22.073026" elapsed="0.625378">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:20:22.698546" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>30s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Linear Topology</arg>
<arg>${SWITCHES}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:19:52.660871" elapsed="30.037799">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Linear Topology.</doc>
<status status="FAIL" start="2026-04-17T03:19:52.660177" elapsed="30.038726">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t13" name="Remove Flows And Groups After Mininet Reconnects" line="93">
<for flavor="IN RANGE">
<iter>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:22.704696" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</msg>
<msg time="2026-04-17T03:20:22.906303" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</msg>
<msg time="2026-04-17T03:20:23.308931" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</msg>
<msg time="2026-04-17T03:20:23.310915" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:table=0/flow=1</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:22.702084" elapsed="0.614747">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:group=1</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:23.317207" elapsed="0.000042"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}/node=openflow%3A${switch}/flow-node-inventory:group=1000</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:23.317489" elapsed="0.000030"/>
</kw>
<var name="${switch}">1</var>
<status status="FAIL" start="2026-04-17T03:20:22.701924" elapsed="0.615682">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="FAIL" start="2026-04-17T03:20:22.699615" elapsed="0.618082">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<doc>Remove some groups and flows while network is down.</doc>
<status status="FAIL" start="2026-04-17T03:20:22.699132" elapsed="0.618827">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1 (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t14" name="Check Flows In Operational DS After Mininet Reconnects" line="107">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:23.323556" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:23.525275" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:23.928149" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:23.930214" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:23.320503" elapsed="0.613346">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:23.934451" elapsed="0.000062"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:23.934870" elapsed="0.000040"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:23.935254" elapsed="0.000040"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:23.319972" elapsed="0.615576">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:24.942367" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:25.144084" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:25.546613" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:25.549037" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:24.937557" elapsed="0.616923">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:25.554830" elapsed="0.000033"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:25.555048" elapsed="0.000021"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:25.555253" elapsed="0.000021"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:24.936539" elapsed="0.618862">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:26.562855" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:26.764790" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:27.167521" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:27.170077" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:26.557422" elapsed="0.617195">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:27.175104" elapsed="0.000046"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:27.175553" elapsed="0.000035"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:27.175902" elapsed="0.000034"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:26.556337" elapsed="0.619770">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:28.183320" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:28.385016" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:28.787485" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:28.789853" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:28.178313" elapsed="0.618456">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:28.797518" elapsed="0.000048"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:28.797755" elapsed="0.000022"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:28.797967" elapsed="0.000022"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:28.177194" elapsed="0.620916">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:29.804293" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:30.005934" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:30.408246" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:30.410561" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:29.800065" elapsed="0.612943">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:30.413337" elapsed="0.000032"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:30.413572" elapsed="0.000023"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:30.413788" elapsed="0.000022"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:29.799121" elapsed="0.614800">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:31.420914" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:31.622593" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:32.024858" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:32.027165" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:31.415981" elapsed="0.616068">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:32.032526" elapsed="0.000048"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:32.032849" elapsed="0.000033"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:32.033158" elapsed="0.000032"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:31.414995" elapsed="0.618367">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:33.039664" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:33.241479" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:33.643829" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:33.645917" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:33.035242" elapsed="0.614542">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:33.650358" elapsed="0.000084"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:33.650799" elapsed="0.000043"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:33.651245" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:33.034194" elapsed="0.617318">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:34.657132" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:34.858571" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:35.261042" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:35.263058" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:34.653528" elapsed="0.613820">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:35.268021" elapsed="0.000055"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:35.268484" elapsed="0.000044"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:35.268950" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:34.652259" elapsed="0.616943">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:36.276289" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:36.478372" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:36.880664" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:36.883172" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:36.271144" elapsed="0.617579">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:36.889483" elapsed="0.000301"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:36.890093" elapsed="0.000025"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:36.890331" elapsed="0.000027"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:36.270168" elapsed="0.620345">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:37.898421" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:38.100205" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:38.502935" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:38.505273" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:37.892609" elapsed="0.618588">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:38.511917" elapsed="0.000079"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:38.512464" elapsed="0.000055"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:38.512995" elapsed="0.000064"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:37.891583" elapsed="0.621718">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:39.520341" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:39.722595" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:40.124738" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:40.126437" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:39.515496" elapsed="0.614427">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:40.130504" elapsed="0.000054"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:40.130879" elapsed="0.000036"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:40.131281" elapsed="0.000046"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:39.514271" elapsed="0.617301">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:41.136350" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:41.338060" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:41.741181" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:41.743508" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:41.133000" elapsed="0.615697">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:41.749292" elapsed="0.000059"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:41.749786" elapsed="0.000051"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:41.750253" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:41.132343" elapsed="0.618214">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:42.757593" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:42.960025" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:43.363049" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:43.365518" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:42.752567" elapsed="0.617687">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:43.370763" elapsed="0.000039"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:43.371060" elapsed="0.000030"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:43.371353" elapsed="0.000047"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:42.751555" elapsed="0.619999">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:44.378175" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:44.579924" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:44.982288" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:44.985141" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:44.373515" elapsed="0.616822">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:44.990700" elapsed="0.000032"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:44.990915" elapsed="0.000022"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:44.991123" elapsed="0.000021"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:44.372550" elapsed="0.618705">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:45.997930" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:46.199427" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:46.601742" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:46.603857" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:45.993344" elapsed="0.615610">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:46.609581" elapsed="0.000062"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:46.610053" elapsed="0.000050"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:46.610710" elapsed="0.000083"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:45.992274" elapsed="0.618759">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:47.617416" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:47.819089" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:48.221692" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:48.224145" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:47.612907" elapsed="0.616515">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:48.229829" elapsed="0.000041"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:48.230126" elapsed="0.000030"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:48.230432" elapsed="0.000032"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:47.612008" elapsed="0.618600">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:49.237191" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:49.439167" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:49.842105" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:49.844884" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:49.232584" elapsed="0.617719">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:49.850945" elapsed="0.000060"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:49.851440" elapsed="0.000051"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:49.851914" elapsed="0.000049"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:49.231556" elapsed="0.620636">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:50.859193" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:51.060805" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:51.463223" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:51.465165" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:50.854228" elapsed="0.615015">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:51.469866" elapsed="0.000045"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:51.470207" elapsed="0.000037"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:51.470571" elapsed="0.000036"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:50.853202" elapsed="0.617574">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:52.477133" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:52.679088" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:53.081679" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:53.084058" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:52.472619" elapsed="0.616860">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:53.090164" elapsed="0.000088"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:53.090690" elapsed="0.000050"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:53.091149" elapsed="0.000045"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:52.471721" elapsed="0.619730">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:54.097058" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.298576" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.701010" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.703193" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:54.092981" elapsed="0.615609">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:54.709045" elapsed="0.000058"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:54.709429" elapsed="0.000034"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:54.709750" elapsed="0.000052"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:54.092202" elapsed="0.617762">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:20:54.710119" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>30s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Number Of Flows</arg>
<arg>${less_flows}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:20:23.319037" elapsed="31.391313">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:20:23.318257" elapsed="31.392393">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t15" name="Check Groups In Operational DS After Mininet Reconnects" line="111">
<kw name="Check Number Of Groups" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:54.715943" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.917200" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:55.320058" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:55.322335" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:54.712531" elapsed="0.615263">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:55.328445" elapsed="0.000064"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${group_count}</var>
<arg>${resp.text}</arg>
<arg>"group-type"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:55.328922" elapsed="0.000047"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${group_count}</arg>
<arg>${groups}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:55.329378" elapsed="0.000075"/>
</kw>
<arg>${less_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:20:54.711950" elapsed="0.617733">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:20:54.711057" elapsed="0.618970">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t16" name="Check Flows In Switch After Mininet Reconnects" line="115">
<kw name="Check Flows In Mininet" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:20:55.332646" elapsed="0.000160"/>
</kw>
<status status="PASS" start="2026-04-17T03:20:55.332351" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:55.332326" elapsed="0.000546"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.333359" level="INFO">${cmd} = dpctl dump-aggregate -O OpenFlow13</msg>
<var>${cmd}</var>
<arg>dpctl dump-aggregate -O OpenFlow13</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:20:55.333052" elapsed="0.000357"/>
</kw>
<kw name="Send Mininet Command" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:20:55.334290" elapsed="0.000156"/>
</kw>
<status status="PASS" start="2026-04-17T03:20:55.334066" elapsed="0.000417"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:55.334048" elapsed="0.000461"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:20:55.338599" level="INFO">dpctl dump-aggregate -O OpenFlow13</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:20:55.334714" elapsed="0.003950"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:20:55.421628" level="INFO">*** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s3 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
mininet&gt;</msg>
<msg time="2026-04-17T03:20:55.421833" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ----------------------------...</msg>
<var>${output}</var>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:20:55.338836" elapsed="0.083030"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:20:55.421947" elapsed="0.000055"/>
</return>
<msg time="2026-04-17T03:20:55.422237" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ----------------------------...</msg>
<var>${output}</var>
<arg>${mininet_conn}</arg>
<arg>${cmd}</arg>
<doc>Sends Command dpctl dump-aggregate -O OpenFlow13 to Mininet session 5 and returns read buffer response.</doc>
<status status="PASS" start="2026-04-17T03:20:55.333749" elapsed="0.088517"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-04-17T03:20:55.422819" level="INFO">${flows} = ['0', '0', '0']</msg>
<var>${flows}</var>
<arg>${output}</arg>
<arg>(?&lt;=flow_count\=).*?(?=\r)</arg>
<doc>Returns a list of all non-overlapping matches in the given string.</doc>
<status status="PASS" start="2026-04-17T03:20:55.422510" elapsed="0.000336"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.423519" level="INFO">${total_flows} = 0</msg>
<var>${total_flows}</var>
<arg>sum(map(int, ${flows}))</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:20:55.423014" elapsed="0.000535"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.424573" level="FAIL">0.0 != 300.0</msg>
<arg>${total_flows}</arg>
<arg>${flow_count}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="FAIL" start="2026-04-17T03:20:55.423786" elapsed="0.000864">0.0 != 300.0</status>
</kw>
<arg>${mininet_conn_id}</arg>
<arg>${less_flows}</arg>
<doc>Sync with mininet to match exact number of flows</doc>
<status status="FAIL" start="2026-04-17T03:20:55.331970" elapsed="0.092787">0.0 != 300.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:20:55.330547" elapsed="0.094361">0.0 != 300.0</status>
</test>
<test id="s1-s5-s1-t17" name="Restart Controller" line="119">
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="Stop_Members_From_List_Or_All" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.430864" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:55.430465" elapsed="0.000427"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.431362" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:20:55.431055" elapsed="0.000348"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:20:55.431451" elapsed="0.000030"/>
</return>
<msg time="2026-04-17T03:20:55.431645" level="INFO">${stop_index_list} = [1]</msg>
<var>${stop_index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:20:55.430062" elapsed="0.001609"/>
</kw>
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.432691" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:55.432290" elapsed="0.000427"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.433171" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:20:55.432876" elapsed="0.000320"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:20:55.433240" elapsed="0.000028"/>
</return>
<msg time="2026-04-17T03:20:55.433414" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${original_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:20:55.431895" elapsed="0.001545"/>
</kw>
<kw name="Run_Bash_Command_On_List_Or_All" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.434986" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:55.434548" elapsed="0.000472"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.435528" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:20:55.435185" elapsed="0.000370"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:20:55.435601" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:20:55.435760" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:20:55.434144" elapsed="0.001642"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-04-17T03:20:55.436928" level="INFO">${member_ip} = 10.30.170.85</msg>
<var>${member_ip}</var>
<arg>dictionary=${ClusterManagement__index_to_ip_mapping}</arg>
<arg>key=${member_index}</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="PASS" start="2026-04-17T03:20:55.436616" elapsed="0.000340"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:55.437801" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:20:55.437916" level="INFO">${current_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:20:55.437662" elapsed="0.000281"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Run Command On Controller" 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-04-17T03:20:55.444304" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:55.443363" elapsed="0.001121"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:55.443336" elapsed="0.001231"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:55.444904" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:20:55.445177" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:20:55.444763" elapsed="0.000552"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.446408" level="INFO">Attempting to execute command "/tmp/karaf-0.23.1-SNAPSHOT/bin/stop" on remote system "10.30.170.85" 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-04-17T03:20:55.445626" elapsed="0.000851"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:55.447770" level="INFO">${conn_id} = 10</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-04-17T03:20:55.446801" elapsed="0.001114"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:20:55.450458" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:20:55.450647" 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-04-17T03:20:55.449981" elapsed="0.000725"/>
</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-04-17T03:20:55.451486" elapsed="0.000563"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:20:55.453755" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:20:56.135764" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:20:55 UTC 2026

  System load:  0.0                Processes:             123
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:19:52 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:20:55.453363" elapsed="0.682621"/>
</kw>
<msg time="2026-04-17T03:20:56.136174" 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="PASS" start="2026-04-17T03:20:55.452853" elapsed="0.683466"/>
</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="PASS" start="2026-04-17T03:20:55.448438" elapsed="0.688088"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.137423" level="INFO">Executing command '/tmp/karaf-0.23.1-SNAPSHOT/bin/stop'.</msg>
<msg time="2026-04-17T03:20:56.150932" level="INFO">Command exited with return code 127.</msg>
<msg time="2026-04-17T03:20:56.151490" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:20:56.151848" level="INFO">${stderr} = bash: line 1: /tmp/karaf-0.23.1-SNAPSHOT/bin/stop: No such file or directory</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="PASS" start="2026-04-17T03:20:56.137015" elapsed="0.015100"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.153023" elapsed="0.000745"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.156689" level="INFO">bash: line 1: /tmp/karaf-0.23.1-SNAPSHOT/bin/stop: No such file or directory</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:56.155113" elapsed="0.001720"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:20:56.157497" elapsed="0.000050"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:20:56.157118" elapsed="0.000515"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.157081" elapsed="0.000665"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:20:56.158191" elapsed="0.000065"/>
</return>
<status status="PASS" start="2026-04-17T03:20:56.157880" elapsed="0.000463"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.157855" elapsed="0.000626"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:20:56.158590" elapsed="0.000023"/>
</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-04-17T03:20:56.166298" elapsed="0.000309"/>
</kw>
<msg time="2026-04-17T03:20:56.166719" 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-04-17T03:20:56.165172" elapsed="0.001705"/>
</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-04-17T03:20:56.168568" elapsed="0.000089"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:56.169755" elapsed="0.000068"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:20:56.159069" elapsed="0.010858"/>
</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="PASS" start="2026-04-17T03:20:55.442352" elapsed="0.727881"/>
</kw>
<msg time="2026-04-17T03:20:56.170307" 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="PASS" start="2026-04-17T03:20:55.441494" elapsed="0.728879"/>
</kw>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:20:55.440904" elapsed="0.729590"/>
</kw>
<msg time="2026-04-17T03:20:56.170548" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>${keyword_name}</arg>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:20:55.438131" elapsed="0.732474"/>
</kw>
<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-04-17T03:20:56.174054" elapsed="0.000151"/>
</kw>
<msg time="2026-04-17T03:20:56.174249" 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-04-17T03:20:56.173472" elapsed="0.000840"/>
</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-04-17T03:20:56.174491" elapsed="0.000024"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:56.174659" elapsed="0.000022"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:20:56.170930" elapsed="0.003813"/>
</kw>
<msg time="2026-04-17T03:20:56.174838" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>Utils.Run_Command_On_Controller</arg>
<arg>${member_ip}</arg>
<arg>${command}</arg>
<doc>Store current connection index, run keyword returning its result, restore connection in teardown.
Note that in order to avoid "got positional argument after named arguments", it is safer to use positional (not named) arguments on call.</doc>
<status status="PASS" start="2026-04-17T03:20:55.437209" elapsed="0.737655"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.175349" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:56.175082" elapsed="0.000328"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:20:56.175457" elapsed="0.000032"/>
</return>
<arg>command=${command}</arg>
<arg>member_index=${index}</arg>
<doc>Obtain IP, call Utils and return output. This keeps previous ssh session active.</doc>
<status status="PASS" start="2026-04-17T03:20:55.436184" elapsed="0.739405"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-17T03:20:55.436000" elapsed="0.739628"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-04-17T03:20:55.435851" elapsed="0.739815"/>
</for>
<arg>command=${NODE_STOP_COMMAND}</arg>
<arg>member_index_list=${member_index_list}</arg>
<doc>Cycle through indices (or all), run command on each.</doc>
<status status="PASS" start="2026-04-17T03:20:55.433646" elapsed="0.742084"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.176257" level="INFO">${updated_index_list} = [1]</msg>
<var>${updated_index_list}</var>
<arg>@{index_list}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:20:56.175934" elapsed="0.000350"/>
</kw>
<kw name="Remove Values From List" owner="Collections">
<arg>${updated_index_list}</arg>
<arg>@{stop_index_list}</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-04-17T03:20:56.176565" elapsed="0.000224"/>
</kw>
<if>
<branch type="IF" condition="not ${confirm}">
<return>
<value>${updated_index_list}</value>
<status status="NOT RUN" start="2026-04-17T03:20:56.176987" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:20:56.176872" elapsed="0.000158"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.176850" elapsed="0.000204"/>
</if>
<for flavor="IN">
<iter>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify_Karaf_Is_Not_Running_On_Member" owner="ClusterManagement">
<kw name="Count_Running_Karafs_On_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.179125" level="INFO">${command} = ps axf | grep org.apache.karaf | grep -v grep | wc -l</msg>
<var>${command}</var>
<arg>${NODE_KARAF_COUNT_COMMAND}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:20:56.178812" elapsed="0.000341"/>
</kw>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-04-17T03:20:56.180108" level="INFO">${member_ip} = 10.30.170.85</msg>
<var>${member_ip}</var>
<arg>dictionary=${ClusterManagement__index_to_ip_mapping}</arg>
<arg>key=${member_index}</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="PASS" start="2026-04-17T03:20:56.179798" elapsed="0.000337"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.181231" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:20:56.181337" level="INFO">${current_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.181088" elapsed="0.000276"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Run Command On Controller" 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-04-17T03:20:56.185660" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:56.185334" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.185308" elapsed="0.000436"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.186007" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:20:56.186141" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.185891" elapsed="0.000279"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.186752" level="INFO">Attempting to execute command "ps axf | grep org.apache.karaf | grep -v grep | wc -l" on remote system "10.30.170.85" 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-04-17T03:20:56.186330" elapsed="0.000470"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.187357" level="INFO">${conn_id} = 11</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-04-17T03:20:56.186961" elapsed="0.000439"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.188326" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:20:56.188420" 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-04-17T03:20:56.188049" elapsed="0.000396"/>
</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-04-17T03:20:56.188631" elapsed="0.000334"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.189982" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:20:56.503081" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:20:55 UTC 2026

  System load:  0.0                Processes:             123
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:20:56 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:20:56.189657" elapsed="0.313580"/>
</kw>
<msg time="2026-04-17T03:20:56.503318" 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="PASS" start="2026-04-17T03:20:56.189167" elapsed="0.314258"/>
</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="PASS" start="2026-04-17T03:20:56.187627" elapsed="0.315912"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.504034" level="INFO">Executing command 'ps axf | grep org.apache.karaf | grep -v grep | wc -l'.</msg>
<msg time="2026-04-17T03:20:56.526537" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:20:56.526795" level="INFO">${stdout} = 0</msg>
<msg time="2026-04-17T03:20:56.526893" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:20:56.503788" elapsed="0.023156"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.527330" elapsed="0.000534"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.529151" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:56.528497" elapsed="0.000751"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:20:56.529765" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:20:56.529463" elapsed="0.000413"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.529379" elapsed="0.000548"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:20:56.530307" elapsed="0.000062"/>
</return>
<status status="PASS" start="2026-04-17T03:20:56.530044" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.530010" elapsed="0.000523"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:20:56.530609" elapsed="0.000033"/>
</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-04-17T03:20:56.538670" elapsed="0.000355"/>
</kw>
<msg time="2026-04-17T03:20:56.539124" 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-04-17T03:20:56.537205" elapsed="0.002068"/>
</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-04-17T03:20:56.539771" elapsed="0.000054"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:56.540205" elapsed="0.000049"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:20:56.531318" elapsed="0.009107"/>
</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="PASS" start="2026-04-17T03:20:56.184657" elapsed="0.356136"/>
</kw>
<msg time="2026-04-17T03:20:56.540931" 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="PASS" start="2026-04-17T03:20:56.182936" elapsed="0.358104"/>
</kw>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:20:56.182128" elapsed="0.359115"/>
</kw>
<msg time="2026-04-17T03:20:56.541287" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>${keyword_name}</arg>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:20:56.181561" elapsed="0.359775"/>
</kw>
<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-04-17T03:20:56.544591" elapsed="0.000197"/>
</kw>
<msg time="2026-04-17T03:20:56.544899" 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-04-17T03:20:56.544004" elapsed="0.000961"/>
</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-04-17T03:20:56.545126" elapsed="0.000023"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:56.545290" elapsed="0.000020"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:20:56.541659" elapsed="0.003713"/>
</kw>
<msg time="2026-04-17T03:20:56.545485" level="INFO">${output} = 0</msg>
<var>${output}</var>
<arg>Utils.Run_Command_On_Controller</arg>
<arg>${member_ip}</arg>
<arg>${command}</arg>
<doc>Store current connection index, run keyword returning its result, restore connection in teardown.
Note that in order to avoid "got positional argument after named arguments", it is safer to use positional (not named) arguments on call.</doc>
<status status="PASS" start="2026-04-17T03:20:56.180359" elapsed="0.365152"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.545972" level="INFO">0</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:56.545710" elapsed="0.000307"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:20:56.546060" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:20:56.546214" level="INFO">${count} = 0</msg>
<var>${count}</var>
<arg>command=${command}</arg>
<arg>member_index=${member_index}</arg>
<doc>Obtain IP, call Utils and return output. This keeps previous ssh session active.</doc>
<status status="PASS" start="2026-04-17T03:20:56.179355" elapsed="0.366884"/>
</kw>
<return>
<value>${count}</value>
<status status="PASS" start="2026-04-17T03:20:56.546287" elapsed="0.000026"/>
</return>
<msg time="2026-04-17T03:20:56.546476" level="INFO">${count} = 0</msg>
<var>${count}</var>
<arg>member_index=${member_index}</arg>
<doc>Remotely execute grep for karaf process, return count as string.</doc>
<status status="PASS" start="2026-04-17T03:20:56.178454" elapsed="0.368049"/>
</kw>
<kw name="Should Be Equal" owner="BuiltIn">
<arg>0</arg>
<arg>${count}</arg>
<arg>Found running Karaf count: ${count}</arg>
<doc>Fails if the given objects are unequal.</doc>
<status status="PASS" start="2026-04-17T03:20:56.546659" elapsed="0.000365"/>
</kw>
<arg>member_index=${index}</arg>
<doc>Fail if non-zero karaf instances are counted on member of given index.</doc>
<status status="PASS" start="2026-04-17T03:20:56.178002" elapsed="0.369088"/>
</kw>
<arg>${timeout}</arg>
<arg>2s</arg>
<arg>Verify_Karaf_Is_Not_Running_On_Member</arg>
<arg>member_index=${index}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-04-17T03:20:56.177423" elapsed="0.369714"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-17T03:20:56.177258" elapsed="0.369918"/>
</iter>
<var>${index}</var>
<value>@{stop_index_list}</value>
<status status="PASS" start="2026-04-17T03:20:56.177098" elapsed="0.370114"/>
</for>
<kw name="Run_Bash_Command_On_List_Or_All" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.550506" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:56.550007" elapsed="0.000527"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.551000" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:20:56.550694" elapsed="0.000332"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:20:56.551071" elapsed="0.000028"/>
</return>
<msg time="2026-04-17T03:20:56.551224" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:20:56.549624" elapsed="0.001625"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-04-17T03:20:56.552353" level="INFO">${member_ip} = 10.30.170.85</msg>
<var>${member_ip}</var>
<arg>dictionary=${ClusterManagement__index_to_ip_mapping}</arg>
<arg>key=${member_index}</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="PASS" start="2026-04-17T03:20:56.552059" elapsed="0.000336"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.553192" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:20:56.553294" level="INFO">${current_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.553073" elapsed="0.000248"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Run Command On Controller" 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-04-17T03:20:56.557215" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:56.556340" elapsed="0.001025"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.556319" elapsed="0.001147"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.557773" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:20:56.558009" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.557659" elapsed="0.000462"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.559139" level="INFO">Attempting to execute command "netstat -pnatu | grep 2550" on remote system "10.30.170.85" 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-04-17T03:20:56.558405" elapsed="0.000799"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.560281" level="INFO">${conn_id} = 12</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-04-17T03:20:56.559487" elapsed="0.000919"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.562816" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:20:56.562993" 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-04-17T03:20:56.562253" elapsed="0.000783"/>
</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-04-17T03:20:56.563736" elapsed="0.000482"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.565869" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:20:56.925937" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:20:55 UTC 2026

  System load:  0.0                Processes:             123
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:20:56 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:20:56.565540" elapsed="0.360558"/>
</kw>
<msg time="2026-04-17T03:20:56.926250" 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="PASS" start="2026-04-17T03:20:56.565058" elapsed="0.361309"/>
</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="PASS" start="2026-04-17T03:20:56.560855" elapsed="0.365679"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.927424" level="INFO">Executing command 'netstat -pnatu | grep 2550'.</msg>
<msg time="2026-04-17T03:20:56.940553" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-04-17T03:20:56.940986" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:20:56.941345" level="INFO">${stderr} = bash: line 1: netstat: command not found</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="PASS" start="2026-04-17T03:20:56.926948" elapsed="0.014720"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.942633" elapsed="0.000860"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.946458" level="INFO">bash: line 1: netstat: command not found</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:56.945002" elapsed="0.001602"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:20:56.947583" elapsed="0.000072"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:20:56.947018" elapsed="0.000763"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.946962" elapsed="0.000989"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:20:56.948694" elapsed="0.000104"/>
</return>
<status status="PASS" start="2026-04-17T03:20:56.948154" elapsed="0.000895"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.948116" elapsed="0.001114"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:20:56.949533" elapsed="0.000040"/>
</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-04-17T03:20:56.957696" elapsed="0.000168"/>
</kw>
<msg time="2026-04-17T03:20:56.957948" 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-04-17T03:20:56.956835" elapsed="0.001237"/>
</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-04-17T03:20:56.959206" elapsed="0.000061"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:56.960236" elapsed="0.000059"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:20:56.950280" elapsed="0.010152"/>
</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="PASS" start="2026-04-17T03:20:56.555430" elapsed="0.405225"/>
</kw>
<msg time="2026-04-17T03:20:56.960730" 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="PASS" start="2026-04-17T03:20:56.554546" elapsed="0.406251"/>
</kw>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:20:56.553993" elapsed="0.406893"/>
</kw>
<msg time="2026-04-17T03:20:56.960928" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>${keyword_name}</arg>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:20:56.553490" elapsed="0.407485"/>
</kw>
<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-04-17T03:20:56.964591" elapsed="0.000158"/>
</kw>
<msg time="2026-04-17T03:20:56.964796" 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-04-17T03:20:56.963830" elapsed="0.001031"/>
</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-04-17T03:20:56.965029" elapsed="0.000024"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:56.965205" elapsed="0.000022"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:20:56.961306" elapsed="0.003987"/>
</kw>
<msg time="2026-04-17T03:20:56.965524" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>Utils.Run_Command_On_Controller</arg>
<arg>${member_ip}</arg>
<arg>${command}</arg>
<doc>Store current connection index, run keyword returning its result, restore connection in teardown.
Note that in order to avoid "got positional argument after named arguments", it is safer to use positional (not named) arguments on call.</doc>
<status status="PASS" start="2026-04-17T03:20:56.552659" elapsed="0.412936"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.966113" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:56.965837" elapsed="0.000321"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:20:56.966205" elapsed="0.000043"/>
</return>
<arg>command=${command}</arg>
<arg>member_index=${index}</arg>
<doc>Obtain IP, call Utils and return output. This keeps previous ssh session active.</doc>
<status status="PASS" start="2026-04-17T03:20:56.551649" elapsed="0.414701"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-17T03:20:56.551469" elapsed="0.415004"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-04-17T03:20:56.551303" elapsed="0.415222"/>
</for>
<arg>command=netstat -pnatu | grep 2550</arg>
<doc>Cycle through indices (or all), run command on each.</doc>
<status status="PASS" start="2026-04-17T03:20:56.547454" elapsed="0.419136"/>
</kw>
<return>
<value>${updated_index_list}</value>
<status status="PASS" start="2026-04-17T03:20:56.966632" elapsed="0.000028"/>
</return>
<doc>If the list is empty, stops all ODL instances. Otherwise stop members based on ${stop_index_list}
If ${confirm} is True, verify stopped instances are not there anymore.
The KW will return a list of available members: ${updated index_list}=${original_index_list}-${member_index_list}</doc>
<status status="PASS" start="2026-04-17T03:20:55.426110" elapsed="1.540654"/>
</kw>
<msg time="2026-04-17T03:20:56.966863" level="INFO">${status} = PASS</msg>
<msg time="2026-04-17T03:20:56.966910" level="INFO">${result} = []</msg>
<var>${status}</var>
<var>${result}</var>
<arg>ClusterManagement.Stop_Members_From_List_Or_All</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:20:55.425549" elapsed="1.541384"/>
</kw>
<if>
<branch type="IF" condition="'${status}' != 'PASS'">
<kw name="Kill_Members_From_List_Or_All" owner="ClusterManagement">
<doc>If the list is empty, kill all ODL instances. Otherwise, kill members based on ${kill_index_list}
If ${confirm} is True, sleep 1 second and verify killed instances are not there anymore.
The KW will return a list of available members: ${updated index_list}=${original_index_list}-${member_index_list}</doc>
<status status="NOT RUN" start="2026-04-17T03:20:56.967485" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:56.967023" elapsed="0.000522"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.967002" elapsed="0.000573"/>
</if>
<kw name="Start_Members_From_List_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.980073" level="INFO">${base_command} = /tmp/karaf-0.23.1-SNAPSHOT/bin/start</msg>
<var>${base_command}</var>
<arg>"""${karaf_home}""" != ""</arg>
<arg>${karaf_home}/bin/start</arg>
<arg>${NODE_START_COMMAND}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:56.979643" elapsed="0.000460"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.980830" level="INFO">${command} = /tmp/karaf-0.23.1-SNAPSHOT/bin/start</msg>
<var>${command}</var>
<arg>"""${export_java_home}""" != ""</arg>
<arg>export JAVA_HOME="${export_java_home}"; ${base_command}</arg>
<arg>${base_command}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:56.980448" elapsed="0.000410"/>
</kw>
<kw name="Get Current Date" owner="DateTime">
<msg time="2026-04-17T03:20:56.981309" level="INFO">${epoch} = 1776396056.981232</msg>
<var>${epoch}</var>
<arg>time_zone=UTC</arg>
<arg>result_format=epoch</arg>
<arg>exclude_millis=False</arg>
<doc>Returns current local or UTC time with an optional increment.</doc>
<status status="PASS" start="2026-04-17T03:20:56.981024" elapsed="0.000312"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.981942" level="INFO">${gc_filepath} = /tmp/karaf-0.23.1-SNAPSHOT/data/log/gc_1776396056.981232.log</msg>
<var>${gc_filepath}</var>
<arg>"""${karaf_home}""" != ""</arg>
<arg>${karaf_home}/data/log/gc_${epoch}.log</arg>
<arg>${GC_LOG_PATH}/gc_${epoch}.log</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:56.981525" elapsed="0.000445"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.982539" level="INFO">${gc_options} = -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/karaf-0.23.1-SNAPSHOT/data/log/gc_1776396056.981232.log</msg>
<var>${gc_options}</var>
<arg>"docker" not in """${node_start_command}"""</arg>
<arg>-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:${gc_filepath}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:56.982138" elapsed="0.000429"/>
</kw>
<kw name="Run_Bash_Command_On_List_Or_All" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.984214" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:56.983782" elapsed="0.000459"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.984734" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:20:56.984432" elapsed="0.000328"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:20:56.984806" elapsed="0.000038"/>
</return>
<msg time="2026-04-17T03:20:56.984978" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:20:56.983367" elapsed="0.001636"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-04-17T03:20:56.986120" level="INFO">${member_ip} = 10.30.170.85</msg>
<var>${member_ip}</var>
<arg>dictionary=${ClusterManagement__index_to_ip_mapping}</arg>
<arg>key=${member_index}</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="PASS" start="2026-04-17T03:20:56.985845" elapsed="0.000303"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.987631" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:20:56.987751" level="INFO">${current_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.987108" elapsed="0.000671"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Run Command On Controller" 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-04-17T03:20:56.991039" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:56.990720" elapsed="0.000400"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:56.990696" elapsed="0.000450"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.991437" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:20:56.991544" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:20:56.991298" elapsed="0.000273"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.992549" level="INFO">Attempting to execute command "/tmp/karaf-0.23.1-SNAPSHOT/bin/start -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/karaf-0.23.1-SNAPSHOT/data/log/gc_1776396056.981232.log" on remote system "10.30.170.85" 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-04-17T03:20:56.991724" elapsed="0.000875"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.993354" level="INFO">${conn_id} = 13</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-04-17T03:20:56.992759" elapsed="0.000636"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:20:56.994692" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:20:56.994803" 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-04-17T03:20:56.994148" elapsed="0.000736"/>
</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-04-17T03:20:56.995182" elapsed="0.000770"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:20:56.998253" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:20:57.348870" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:20:55 UTC 2026

  System load:  0.0                Processes:             123
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:20:56 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:20:56.997804" elapsed="0.351413"/>
</kw>
<msg time="2026-04-17T03:20:57.349361" 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="PASS" start="2026-04-17T03:20:56.996501" elapsed="0.353036"/>
</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="PASS" start="2026-04-17T03:20:56.993620" elapsed="0.356395"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:20:57.350791" level="INFO">Executing command '/tmp/karaf-0.23.1-SNAPSHOT/bin/start -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/karaf-0.23.1-SNAPSHOT/data/log/gc_1776396056.981232.log'.</msg>
<msg time="2026-04-17T03:20:57.363821" level="INFO">Command exited with return code 127.</msg>
<msg time="2026-04-17T03:20:57.364026" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:20:57.364101" level="INFO">${stderr} = bash: line 1: /tmp/karaf-0.23.1-SNAPSHOT/bin/start: No such file or directory</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="PASS" start="2026-04-17T03:20:57.350341" elapsed="0.013802"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:20:57.364479" elapsed="0.000435"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.365940" level="INFO">bash: line 1: /tmp/karaf-0.23.1-SNAPSHOT/bin/start: No such file or directory</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:57.365267" elapsed="0.000745"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.366352" elapsed="0.000052"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:20:57.366141" elapsed="0.000317"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:57.366102" elapsed="0.000394"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:20:57.366761" elapsed="0.000051"/>
</return>
<status status="PASS" start="2026-04-17T03:20:57.366583" elapsed="0.000287"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:57.366557" elapsed="0.000356"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.366967" elapsed="0.000022"/>
</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-04-17T03:20:57.377698" elapsed="0.000445"/>
</kw>
<msg time="2026-04-17T03:20:57.378236" 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-04-17T03:20:57.375573" elapsed="0.002793"/>
</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-04-17T03:20:57.378872" elapsed="0.000035"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.379203" elapsed="0.000033"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:20:57.367484" elapsed="0.012157"/>
</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="PASS" start="2026-04-17T03:20:56.990153" elapsed="0.389638"/>
</kw>
<msg time="2026-04-17T03:20:57.379867" 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="PASS" start="2026-04-17T03:20:56.989440" elapsed="0.390499"/>
</kw>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:20:56.988872" elapsed="0.391188"/>
</kw>
<msg time="2026-04-17T03:20:57.380123" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>${keyword_name}</arg>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:20:56.987991" elapsed="0.392201"/>
</kw>
<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-04-17T03:20:57.385102" elapsed="0.000210"/>
</kw>
<msg time="2026-04-17T03:20:57.385373" 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-04-17T03:20:57.384209" elapsed="0.001377"/>
</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-04-17T03:20:57.385832" elapsed="0.000034"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.386080" elapsed="0.000033"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:20:57.380709" elapsed="0.005496"/>
</kw>
<msg time="2026-04-17T03:20:57.386343" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>Utils.Run_Command_On_Controller</arg>
<arg>${member_ip}</arg>
<arg>${command}</arg>
<doc>Store current connection index, run keyword returning its result, restore connection in teardown.
Note that in order to avoid "got positional argument after named arguments", it is safer to use positional (not named) arguments on call.</doc>
<status status="PASS" start="2026-04-17T03:20:56.986366" elapsed="0.400015"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.387248" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:57.386710" elapsed="0.000605"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:20:57.387494" elapsed="0.000049"/>
</return>
<arg>command=${command}</arg>
<arg>member_index=${index}</arg>
<doc>Obtain IP, call Utils and return output. This keeps previous ssh session active.</doc>
<status status="PASS" start="2026-04-17T03:20:56.985416" elapsed="0.402259"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-17T03:20:56.985204" elapsed="0.402522"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-04-17T03:20:56.985062" elapsed="0.402715"/>
</for>
<arg>command=${command} ${gc_options}</arg>
<arg>member_index_list=${member_index_list}</arg>
<doc>Cycle through indices (or all), run command on each.</doc>
<status status="PASS" start="2026-04-17T03:20:56.982814" elapsed="0.405050"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.399058" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:57.398703" elapsed="0.000419"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:57.398678" elapsed="0.000471"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.400742" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:57.400297" elapsed="0.000473"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.401246" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:20:57.400939" elapsed="0.000333"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:20:57.401318" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:20:57.401496" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:20:57.399889" elapsed="0.001633"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.402581" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:20:57.402255" elapsed="0.000354"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:20:57.402655" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:20:57.402804" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:20:57.401893" elapsed="0.000935"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.493827" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:20:57.493102" elapsed="0.000831"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:20:57.496025" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.495727" elapsed="0.000376">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:20:57.496306" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:20:57.495200" elapsed="0.001220"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.498136" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:57.497479" elapsed="0.000756"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:20:57.499618" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:20:57.499986" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:20:57.499279" elapsed="0.000804"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.501476" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:57.501053" elapsed="0.000532"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.503461" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:57.503173" elapsed="0.000335"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.503960" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:20:57.503669" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.504322" elapsed="0.000021"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.504547" elapsed="0.000031"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.504747" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:20:57.504187" elapsed="0.000618"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.504039" elapsed="0.000798"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:20:57.504885" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:20:57.505077" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:20:57.502767" elapsed="0.002358"/>
</kw>
<status status="PASS" start="2026-04-17T03:20:57.501758" elapsed="0.003408"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.505511" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:57.505225" elapsed="0.000364"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:57.501699" elapsed="0.003944"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.507692" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:20:57.506937" elapsed="0.000855"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:20:57.507878" elapsed="0.000053"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:20:57.490513" elapsed="0.017667"/>
</kw>
<msg time="2026-04-17T03:20:57.508462" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:20:57.439287" elapsed="0.069235"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.521237" elapsed="0.000042"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.533183" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.545574" elapsed="0.000066"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.545895" elapsed="0.000024"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.546086" elapsed="0.000112"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.546738" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:57.546576" elapsed="0.000325"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:57.546556" elapsed="0.000375"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.547078" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.547245" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.547428" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:20:57.546509" elapsed="0.000975"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.546265" elapsed="0.001247"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.547660" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.547740" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:20:57.547908" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:20:57.435056" elapsed="0.112880"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:20:57.549689" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.549203" elapsed="0.000643">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:20:57.550063" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:20:57.548788" elapsed="0.001301"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.550470" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:57.550169" elapsed="0.000361"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.551288" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:20:57.550763" elapsed="0.000552"/>
</kw>
<status status="PASS" start="2026-04-17T03:20:57.550556" elapsed="0.000795"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:57.550147" elapsed="0.001227"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.553841" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:20:57.551551" elapsed="0.002318"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:20:57.553929" elapsed="0.000036"/>
</return>
<msg time="2026-04-17T03:20:57.554097" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:20:57.548357" elapsed="0.005765"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:20:57.555659" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.555173" elapsed="0.000636">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:20:57.556029" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:20:57.554822" elapsed="0.001236"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:20:57.556279" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-17T03:20:57.556135" elapsed="0.000204"/>
</branch>
<status status="PASS" start="2026-04-17T03:20:57.556115" elapsed="0.000249"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.556530" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.556738" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.556882" elapsed="0.000017"/>
</return>
<msg time="2026-04-17T03:20:57.558993" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:20:57.554474" elapsed="0.004547"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.560643" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:57.560318" elapsed="0.000375"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:20:57.561120" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:20:57.560846" elapsed="0.000318"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:20:57.566785" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.563231" elapsed="0.005291">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:20:57.561234" elapsed="0.007384">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.568853" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:57.568674" elapsed="0.000245"/>
</branch>
<status status="FAIL" start="2026-04-17T03:20:57.561215" elapsed="0.007727">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.569531" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.569673" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:20:57.569633" elapsed="0.000083"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:57.569615" elapsed="0.000122"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.569882" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.569951" elapsed="0.000014"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.559477" elapsed="0.010588">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.570143" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.413356" elapsed="0.156886">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.570541" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:57.570338" elapsed="0.000277"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:57.570321" elapsed="0.000318"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:20:57.570671" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.407344" elapsed="0.163429">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:20:57.401724" elapsed="0.169174">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:20:57.401579" elapsed="0.169385">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:20:57.399487" elapsed="0.171577">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:20:57.399205" elapsed="0.171918">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:20:57.399189" elapsed="0.171967">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:20:57.571505" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:20:57.571226" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:20:57.571209" elapsed="0.000379"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.398229" elapsed="0.173442">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.587294" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:07.586936" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:07.586911" elapsed="0.000501"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.589146" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:07.588672" elapsed="0.000503"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.589944" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:21:07.589341" elapsed="0.000631"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:21:07.590046" elapsed="0.000045"/>
</return>
<msg time="2026-04-17T03:21:07.590266" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:21:07.588191" elapsed="0.002109"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.591480" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:07.591123" elapsed="0.000386"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:21:07.591555" elapsed="0.000030"/>
</return>
<msg time="2026-04-17T03:21:07.591705" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:21:07.590759" elapsed="0.000971"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.684008" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:07.683290" elapsed="0.000823"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:07.686202" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:07.685910" elapsed="0.000371">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:07.686722" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:07.685407" elapsed="0.001526"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.689139" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:07.688156" elapsed="0.001125"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:21:07.691037" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:21:07.691315" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:21:07.690705" elapsed="0.000727"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.692820" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:07.692404" elapsed="0.000536"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.694566" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:07.694275" elapsed="0.000339"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.697138" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:21:07.694777" elapsed="0.002392"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.697642" elapsed="0.000024"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.697866" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.698056" elapsed="0.000065"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:21:07.697379" elapsed="0.000783"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:21:07.697227" elapsed="0.000968"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:21:07.698249" elapsed="0.000036"/>
</return>
<msg time="2026-04-17T03:21:07.698471" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:21:07.693858" elapsed="0.004664"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:07.693112" elapsed="0.005454"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.698909" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:07.698630" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:07.693052" elapsed="0.006009"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.700818" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:21:07.700039" elapsed="0.000880"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:21:07.701005" elapsed="0.000063"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:21:07.680997" elapsed="0.020324"/>
</kw>
<msg time="2026-04-17T03:21:07.701785" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:21:07.627039" elapsed="0.074803"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.714137" elapsed="0.000031"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.726398" elapsed="0.000038"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.741273" elapsed="0.000031"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.741512" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.741712" elapsed="0.000023"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.742200" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:07.742012" elapsed="0.000369"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:07.741994" elapsed="0.000437"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.742583" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.742784" elapsed="0.000024"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.742958" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:21:07.741955" elapsed="0.001059"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:21:07.741795" elapsed="0.001247"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.743346" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:07.743443" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:21:07.743582" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:21:07.622811" elapsed="0.120798"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:07.745310" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:07.744833" elapsed="0.000684">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:07.745793" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:07.744436" elapsed="0.001389"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.746236" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:07.745921" elapsed="0.000399"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.747250" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:07.746631" elapsed="0.000657"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:07.746346" elapsed="0.000990"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:07.745896" elapsed="0.001469"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.749990" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:07.747593" elapsed="0.002442"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:21:07.750171" elapsed="0.000045"/>
</return>
<msg time="2026-04-17T03:21:07.750447" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:07.744014" elapsed="0.006468"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:07.751995" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:07.751576" elapsed="0.000574">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:07.752450" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:07.751193" elapsed="0.001285"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:21:07.752701" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-04-17T03:21:07.752557" elapsed="0.000206"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:07.752537" elapsed="0.000251"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.752937" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.753120" elapsed="0.000023"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:21:07.753190" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:21:07.755362" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:07.750820" elapsed="0.004643"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.757047" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:07.756751" elapsed="0.000356"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:07.757567" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:07.757270" elapsed="0.000344"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:21:07.764767" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:21:07.759806" elapsed="0.006894">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:07.757685" elapsed="0.009160">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.767141" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:07.766912" elapsed="0.000332"/>
</branch>
<status status="FAIL" start="2026-04-17T03:21:07.757666" elapsed="0.009614">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.768052" elapsed="0.000038"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:07.768243" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:21:07.768191" elapsed="0.000111"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:07.768166" elapsed="0.000166"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.768590" elapsed="0.000055"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:21:07.768738" elapsed="0.000032"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:21:07.755872" elapsed="0.013062">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:07.769059" elapsed="0.000025"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:21:07.601415" elapsed="0.167791">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.769636" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:07.769347" elapsed="0.000458"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:07.769321" elapsed="0.000523"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:07.769892" elapsed="0.000023"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:21:07.595561" elapsed="0.174500">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:21:07.590560" elapsed="0.179636">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:21:07.590371" elapsed="0.179916">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:21:07.587777" elapsed="0.182674">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:07.587471" elapsed="0.183066">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:21:07.587455" elapsed="0.183130">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:21:07.771005" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:07.770687" elapsed="0.000401"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:07.770662" elapsed="0.000462"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:21:07.586398" elapsed="0.184841">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.783885" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:17.783433" elapsed="0.000534"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:17.783403" elapsed="0.000592"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.785677" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:17.785188" elapsed="0.000519"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.786244" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:21:17.785887" elapsed="0.000385"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:21:17.786336" elapsed="0.000073"/>
</return>
<msg time="2026-04-17T03:21:17.786601" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:21:17.784744" elapsed="0.001894"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.788622" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:17.788172" elapsed="0.000489"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:21:17.788728" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:21:17.788947" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:21:17.787656" elapsed="0.001329"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.898182" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:17.897422" elapsed="0.000870"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:17.901178" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:17.900863" elapsed="0.000400">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:17.901518" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:17.900239" elapsed="0.001380"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.903382" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:17.902653" elapsed="0.000856"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:21:17.904944" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:21:17.905250" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:21:17.904600" elapsed="0.000751"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.907085" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:17.906602" elapsed="0.000598"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.908877" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:17.908569" elapsed="0.000357"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.909647" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:21:17.909095" elapsed="0.000584"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.910036" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.910263" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.910476" elapsed="0.000025"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:21:17.909895" elapsed="0.000651"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:21:17.909734" elapsed="0.000847"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:21:17.910630" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:21:17.910839" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:21:17.908129" elapsed="0.002760"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:17.907374" elapsed="0.003558"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.911271" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:17.910993" elapsed="0.000360"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:17.907312" elapsed="0.004122"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.913649" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:21:17.912460" elapsed="0.001289"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:21:17.913838" elapsed="0.000056"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:21:17.894343" elapsed="0.019802"/>
</kw>
<msg time="2026-04-17T03:21:17.914564" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:21:17.836653" elapsed="0.077976"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.927083" elapsed="0.000046"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.939419" elapsed="0.000049"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.951522" elapsed="0.000036"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.951797" elapsed="0.000027"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.951989" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.952490" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:17.952311" elapsed="0.000357"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:17.952291" elapsed="0.000409"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.952855" elapsed="0.000027"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.953060" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.953227" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:21:17.952244" elapsed="0.001038"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:21:17.952074" elapsed="0.001236"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.953475" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:17.953560" elapsed="0.000020"/>
</return>
<msg time="2026-04-17T03:21:17.953730" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:21:17.832185" elapsed="0.121575"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:17.955450" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:17.954970" elapsed="0.000664">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:17.955862" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:17.954537" elapsed="0.001352"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.956236" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:17.955964" elapsed="0.000330"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.957076" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:17.956543" elapsed="0.000562"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:17.956319" elapsed="0.000822"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:17.955944" elapsed="0.001221"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.959660" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:17.957321" elapsed="0.002368"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:21:17.959754" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:21:17.959921" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:17.954151" elapsed="0.005796"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:17.961501" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:17.961062" elapsed="0.000588">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:17.961877" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:17.960691" elapsed="0.001213"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:21:17.962119" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-04-17T03:21:17.961978" elapsed="0.000203"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:17.961958" elapsed="0.000248"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.962360" elapsed="0.000039"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.962556" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:21:17.962626" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:21:17.964781" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:17.960333" elapsed="0.004480"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.966422" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:17.966111" elapsed="0.000362"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:17.966918" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:17.966628" elapsed="0.000336"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:21:17.972943" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:21:17.969089" elapsed="0.007587">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:17.967035" elapsed="0.009785">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.977132" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:17.976878" elapsed="0.000357"/>
</branch>
<status status="FAIL" start="2026-04-17T03:21:17.967016" elapsed="0.010255">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.978159" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:17.978370" elapsed="0.000052"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:21:17.978313" elapsed="0.000162"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:17.978286" elapsed="0.000222"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.978729" elapsed="0.000035"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:21:17.978836" elapsed="0.000022"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:21:17.965184" elapsed="0.013823">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:17.979125" elapsed="0.000023"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:21:17.802638" elapsed="0.176639">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.979869" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:17.979530" elapsed="0.000452"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:17.979501" elapsed="0.000518"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:17.980070" elapsed="0.000023"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:21:17.794086" elapsed="0.186142">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:21:17.786926" elapsed="0.193407">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:21:17.786714" elapsed="0.193755">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:21:17.784320" elapsed="0.196331">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:17.784054" elapsed="0.196700">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:21:17.784037" elapsed="0.196766">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:21:17.981238" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:17.980915" elapsed="0.000407"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:17.980887" elapsed="0.000470"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:21:17.782835" elapsed="0.198705">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:21:27.995714" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:27.995336" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:27.995308" elapsed="0.000514"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:27.997812" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:27.997251" elapsed="0.000594"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:21:27.998418" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:21:27.998049" elapsed="0.000397"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:21:27.998495" elapsed="0.000317"/>
</return>
<msg time="2026-04-17T03:21:27.998954" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:21:27.996694" elapsed="0.002287"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.000134" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:27.999794" elapsed="0.000467"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:21:28.000320" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:21:28.000516" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:21:27.999406" elapsed="0.001140"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.099652" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:28.098876" elapsed="0.000887"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:28.102110" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:28.101800" elapsed="0.000391">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:28.102424" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:28.100823" elapsed="0.001700"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.104419" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:28.103535" elapsed="0.001016"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:21:28.106574" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:21:28.106918" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:21:28.106143" elapsed="0.000895"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.108858" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:28.108282" elapsed="0.000721"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.111084" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:28.110777" elapsed="0.000355"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.111725" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:21:28.111300" elapsed="0.000455"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.112111" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.112576" elapsed="0.000027"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.112762" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:21:28.111959" elapsed="0.000861"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:21:28.111811" elapsed="0.001042"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:21:28.112900" elapsed="0.000036"/>
</return>
<msg time="2026-04-17T03:21:28.113133" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:21:28.110160" elapsed="0.003025"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:28.109279" elapsed="0.003951"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.113763" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:28.113293" elapsed="0.000555"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:28.109197" elapsed="0.004708"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.115841" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:21:28.114979" elapsed="0.000965"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:21:28.116037" elapsed="0.000060"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:21:28.096214" elapsed="0.020141"/>
</kw>
<msg time="2026-04-17T03:21:28.116789" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:21:28.040203" elapsed="0.076651"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.129187" elapsed="0.000032"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.140911" elapsed="0.000029"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.153257" elapsed="0.000053"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.153567" elapsed="0.000026"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.153758" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.154278" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:28.154114" elapsed="0.000383"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:28.154095" elapsed="0.000439"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.154739" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.154935" elapsed="0.000022"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.155114" elapsed="0.000024"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:21:28.154050" elapsed="0.001132"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:21:28.153843" elapsed="0.001377"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.155426" elapsed="0.000025"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:28.155514" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:21:28.155671" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:21:28.035351" elapsed="0.120348"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:28.157489" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:28.156911" elapsed="0.000740">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:28.157871" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:28.156501" elapsed="0.001396"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.158259" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:28.157972" elapsed="0.000427"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.159198" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:28.158661" elapsed="0.000566"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:28.158429" elapsed="0.000835"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:28.157953" elapsed="0.001334"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.161806" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:28.159468" elapsed="0.002368"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:21:28.161889" elapsed="0.000033"/>
</return>
<msg time="2026-04-17T03:21:28.162048" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:28.156111" elapsed="0.005961"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:28.163470" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:28.163054" elapsed="0.000559">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:28.163824" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:28.162717" elapsed="0.001133"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:21:28.164113" elapsed="0.000038"/>
</return>
<status status="PASS" start="2026-04-17T03:21:28.163927" elapsed="0.000266"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:28.163904" elapsed="0.000319"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.164373" elapsed="0.000042"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.164612" elapsed="0.000031"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:21:28.164698" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:21:28.167122" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:28.162374" elapsed="0.004779"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.168851" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:28.168560" elapsed="0.000339"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:28.169404" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:28.169107" elapsed="0.000344"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:21:28.175348" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:21:28.171662" elapsed="0.005620">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:28.169522" elapsed="0.007913">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.177679" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:28.177487" elapsed="0.000259"/>
</branch>
<status status="FAIL" start="2026-04-17T03:21:28.169502" elapsed="0.008269">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.178351" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:28.178515" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:21:28.178474" elapsed="0.000085"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:28.178453" elapsed="0.000127"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.178728" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:21:28.178860" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:21:28.167642" elapsed="0.011336">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:28.179069" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:21:28.012741" elapsed="0.166433">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.179528" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:28.179275" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:28.179257" elapsed="0.000389"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:28.179680" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:21:28.005094" elapsed="0.174693">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:21:27.999204" elapsed="0.180654">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:21:27.999046" elapsed="0.180884">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:21:27.996187" elapsed="0.183849">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:27.995880" elapsed="0.184219">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:21:27.995864" elapsed="0.184268">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:21:28.180449" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:28.180205" elapsed="0.000303"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:28.180187" elapsed="0.000345"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:21:27.994790" elapsed="0.185824">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.196878" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:38.196445" elapsed="0.000515"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:38.196374" elapsed="0.000613"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.198653" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:38.198162" elapsed="0.000525"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.199250" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:21:38.198932" elapsed="0.000346"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:21:38.199326" elapsed="0.000282"/>
</return>
<msg time="2026-04-17T03:21:38.199791" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:21:38.197725" elapsed="0.002093"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.200887" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:38.200570" elapsed="0.000344"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:21:38.200960" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:21:38.201108" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:21:38.200197" elapsed="0.000936"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.294015" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:38.292964" elapsed="0.001157"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:38.295955" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:38.295658" elapsed="0.000375">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:38.296234" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:38.295126" elapsed="0.001205"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.298267" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:38.297375" elapsed="0.000989"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:21:38.300002" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:21:38.300295" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:21:38.299668" elapsed="0.000738"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.302033" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:38.301601" elapsed="0.000541"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.303824" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:38.303410" elapsed="0.000460"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.304316" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:21:38.304036" elapsed="0.000306"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.304795" elapsed="0.000028"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.305291" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.305741" elapsed="0.000023"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:21:38.304656" elapsed="0.001145"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:21:38.304451" elapsed="0.001385"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:21:38.305886" elapsed="0.000041"/>
</return>
<msg time="2026-04-17T03:21:38.306097" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:21:38.302983" elapsed="0.003163"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:38.302311" elapsed="0.003876"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.306537" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:38.306247" elapsed="0.000371"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:38.302252" elapsed="0.004523"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.308572" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:21:38.307764" elapsed="0.000910"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:21:38.308763" elapsed="0.000189"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:21:38.290243" elapsed="0.018966"/>
</kw>
<msg time="2026-04-17T03:21:38.309699" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:21:38.236727" elapsed="0.073037"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.322674" elapsed="0.000071"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.334933" elapsed="0.000050"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.347094" elapsed="0.000043"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.347354" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.347561" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.348039" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:38.347885" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:38.347866" elapsed="0.000358"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.348367" elapsed="0.000026"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.348577" elapsed="0.000022"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.348742" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:21:38.347822" elapsed="0.001040"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:21:38.347644" elapsed="0.001249"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.349042" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:38.349122" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:21:38.349277" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:21:38.232491" elapsed="0.116814"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:38.351087" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:38.350627" elapsed="0.000616">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:38.351479" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:38.350190" elapsed="0.001316"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.351862" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:38.351586" elapsed="0.000337"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.352709" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:38.352150" elapsed="0.000588"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:38.351948" elapsed="0.000829"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:38.351566" elapsed="0.001232"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.355268" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:38.352953" elapsed="0.002343"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:21:38.355351" elapsed="0.000037"/>
</return>
<msg time="2026-04-17T03:21:38.355535" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:38.349814" elapsed="0.005748"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:38.357196" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:38.356771" elapsed="0.000575">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:38.357611" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:38.356327" elapsed="0.001311"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:21:38.357875" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-04-17T03:21:38.357719" elapsed="0.000219"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:38.357698" elapsed="0.000265"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.358113" elapsed="0.000022"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.358285" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:21:38.358352" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:21:38.360434" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:38.355952" elapsed="0.004518"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.362183" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:38.361886" elapsed="0.000346"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:38.362676" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:38.362390" elapsed="0.000331"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:21:38.369350" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:21:38.364794" elapsed="0.006338">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:38.362790" elapsed="0.008441">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.371470" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:38.371269" elapsed="0.000271"/>
</branch>
<status status="FAIL" start="2026-04-17T03:21:38.362771" elapsed="0.008860">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.372204" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:38.372345" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:21:38.372304" elapsed="0.000089"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:38.372286" elapsed="0.000179"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.372620" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:21:38.372691" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:21:38.360850" elapsed="0.011960">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:38.372888" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:21:38.210880" elapsed="0.162106">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.373263" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:38.373080" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:38.373063" elapsed="0.000295"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:38.373438" elapsed="0.000016"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:21:38.204842" elapsed="0.168700">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:21:38.200021" elapsed="0.173589">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:21:38.199874" elapsed="0.173801">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:21:38.197304" elapsed="0.176517">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:38.197043" elapsed="0.176836">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:21:38.197027" elapsed="0.176886">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:21:38.374206" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:38.373983" elapsed="0.000279"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:38.373966" elapsed="0.000319"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:21:38.195682" elapsed="0.178681">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.389839" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:48.389448" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:48.389418" elapsed="0.000557"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.392089" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:48.391475" elapsed="0.000649"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.392638" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:21:48.392298" elapsed="0.000367"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:21:48.392714" elapsed="0.000290"/>
</return>
<msg time="2026-04-17T03:21:48.393149" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:21:48.390910" elapsed="0.002265"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.394385" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:48.393961" elapsed="0.000469"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:21:48.394478" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:21:48.394658" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:21:48.393582" elapsed="0.001109"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.494033" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:48.493235" elapsed="0.000945"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:48.496343" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:48.496027" elapsed="0.000473">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:48.496702" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:48.495505" elapsed="0.001294"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.498643" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:48.497864" elapsed="0.000878"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:21:48.500263" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:21:48.500634" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:21:48.499821" elapsed="0.000910"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.502172" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:48.501764" elapsed="0.000523"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.504049" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:48.503771" elapsed="0.000326"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.504661" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:21:48.504263" elapsed="0.000427"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.507589" elapsed="0.000039"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.507879" elapsed="0.000027"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.508060" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:21:48.504897" elapsed="0.003293"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:21:48.504748" elapsed="0.003477"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:21:48.508276" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:21:48.508602" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:21:48.503262" elapsed="0.005393"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:48.502576" elapsed="0.006123"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.509044" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:48.508763" elapsed="0.000381"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:48.502477" elapsed="0.006733"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.511296" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:21:48.510270" elapsed="0.001186"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:21:48.511554" elapsed="0.000056"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:21:48.490601" elapsed="0.021281"/>
</kw>
<msg time="2026-04-17T03:21:48.512148" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:21:48.433246" elapsed="0.078963"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.525209" elapsed="0.000046"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.539851" elapsed="0.000034"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.551883" elapsed="0.000031"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.552111" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.552296" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.552786" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:48.552629" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:48.552611" elapsed="0.000365"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.553122" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.553289" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.553475" elapsed="0.000023"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:21:48.552565" elapsed="0.000967"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:21:48.552382" elapsed="0.001179"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.553706" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:48.553856" elapsed="0.000020"/>
</return>
<msg time="2026-04-17T03:21:48.554005" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:21:48.428926" elapsed="0.125107"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:48.555691" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:48.555224" elapsed="0.000624">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:48.556063" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:48.554817" elapsed="0.001273"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.556465" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:48.556169" elapsed="0.000356"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.557327" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:48.556808" elapsed="0.000546"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:48.556571" elapsed="0.000839"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:48.556148" elapsed="0.001287"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.559967" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:48.557589" elapsed="0.002405"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:21:48.560048" elapsed="0.000036"/>
</return>
<msg time="2026-04-17T03:21:48.560226" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:48.554434" elapsed="0.005819"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:48.561707" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:48.561287" elapsed="0.000566">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:48.562065" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:48.560939" elapsed="0.001153"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:21:48.562326" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-04-17T03:21:48.562168" elapsed="0.000245"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:48.562148" elapsed="0.000293"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.562599" elapsed="0.000024"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.562802" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:21:48.562870" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:21:48.565006" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:48.560599" elapsed="0.004435"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.566646" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:48.566271" elapsed="0.000424"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:48.567224" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:48.566940" elapsed="0.000330"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:21:48.573488" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:21:48.569337" elapsed="0.005938">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:48.567340" elapsed="0.008125">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.575668" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:48.575505" elapsed="0.000228"/>
</branch>
<status status="FAIL" start="2026-04-17T03:21:48.567321" elapsed="0.008436">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.576303" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:48.576463" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:21:48.576422" elapsed="0.000085"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:48.576402" elapsed="0.000126"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.576673" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:21:48.576743" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:21:48.565420" elapsed="0.011436">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:48.576960" elapsed="0.000022"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:21:48.406264" elapsed="0.170813">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.577417" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:48.577175" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:48.577157" elapsed="0.000397"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:48.577599" elapsed="0.000020"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:21:48.398782" elapsed="0.178957">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:21:48.393382" elapsed="0.184451">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:21:48.393234" elapsed="0.184684">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:21:48.390436" elapsed="0.187614">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:48.390042" elapsed="0.188085">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:21:48.390022" elapsed="0.188191">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:21:48.578714" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:48.578314" elapsed="0.000517"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:48.578290" elapsed="0.000574"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:21:48.388805" elapsed="0.190173">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.592750" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:58.592199" elapsed="0.000659"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:58.592166" elapsed="0.000731"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.595258" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:58.594588" elapsed="0.000756"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.596108" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:21:58.595619" elapsed="0.000528"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:21:58.596217" elapsed="0.000055"/>
</return>
<msg time="2026-04-17T03:21:58.596490" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:21:58.593942" elapsed="0.002589"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.598529" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:58.598056" elapsed="0.000512"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:21:58.598637" elapsed="0.000047"/>
</return>
<msg time="2026-04-17T03:21:58.598866" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:21:58.597527" elapsed="0.001378"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.705788" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:58.704906" elapsed="0.001022"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:58.708721" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:58.708343" elapsed="0.000487">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:58.709201" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:58.707659" elapsed="0.001664"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.712039" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:58.711102" elapsed="0.001063"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:21:58.713851" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:21:58.714203" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:21:58.713354" elapsed="0.000975"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.716405" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:58.715824" elapsed="0.000733"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.718662" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:58.718183" elapsed="0.000533"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.719182" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:21:58.718888" elapsed="0.000322"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.719595" elapsed="0.000030"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.719844" elapsed="0.000027"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.720028" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:21:58.719432" elapsed="0.000656"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:21:58.719266" elapsed="0.000855"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:21:58.720170" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:21:58.720373" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:21:58.717761" elapsed="0.002679"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:58.716904" elapsed="0.003580"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.720850" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:58.720544" elapsed="0.000396"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:58.716830" elapsed="0.004166"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.722980" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:21:58.722004" elapsed="0.001092"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:21:58.723190" elapsed="0.000061"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:21:58.701869" elapsed="0.021933"/>
</kw>
<msg time="2026-04-17T03:21:58.724074" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:21:58.641633" elapsed="0.082510"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.737038" elapsed="0.000063"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.749368" elapsed="0.000081"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.765272" elapsed="0.000180"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.766022" elapsed="0.000061"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.766493" elapsed="0.000052"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.767645" elapsed="0.000117"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:58.767235" elapsed="0.000896"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:58.767197" elapsed="0.001003"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.768565" elapsed="0.000051"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.768960" elapsed="0.000046"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.769334" elapsed="0.000074"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:21:58.767109" elapsed="0.002380"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:21:58.766685" elapsed="0.002866"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.769883" elapsed="0.000046"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:58.770054" elapsed="0.000038"/>
</return>
<msg time="2026-04-17T03:21:58.770407" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:21:58.637002" elapsed="0.133472"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:58.772882" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:58.772423" elapsed="0.000617">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:58.773259" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:58.771974" elapsed="0.001312"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.773654" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:58.773360" elapsed="0.000353"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.774475" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:21:58.773941" elapsed="0.000562"/>
</kw>
<status status="PASS" start="2026-04-17T03:21:58.773738" elapsed="0.000801"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:58.773341" elapsed="0.001220"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.776977" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:21:58.774714" elapsed="0.002291"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:21:58.777057" elapsed="0.000033"/>
</return>
<msg time="2026-04-17T03:21:58.777217" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:58.771354" elapsed="0.005888"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:21:58.778650" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:21:58.778241" elapsed="0.000562">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:21:58.779020" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:21:58.777895" elapsed="0.001150"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:21:58.779262" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:21:58.779117" elapsed="0.000206"/>
</branch>
<status status="PASS" start="2026-04-17T03:21:58.779099" elapsed="0.000248"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.779512" elapsed="0.000050"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.779745" elapsed="0.000023"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:21:58.779815" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:21:58.782184" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:21:58.777565" elapsed="0.004646"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.783796" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:58.783489" elapsed="0.000355"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:21:58.784271" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:21:58.783999" elapsed="0.000317"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:21:58.789863" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:21:58.786414" elapsed="0.005178">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:58.784419" elapsed="0.007263">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.791931" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:58.791716" elapsed="0.000285"/>
</branch>
<status status="FAIL" start="2026-04-17T03:21:58.784365" elapsed="0.007661">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.792576" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:58.792713" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:21:58.792675" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:58.792658" elapsed="0.000118"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.792918" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:21:58.792988" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:21:58.782631" elapsed="0.010466">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:58.793175" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:21:58.613315" elapsed="0.179962">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.793574" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:58.793375" elapsed="0.000273"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:58.793357" elapsed="0.000315"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:21:58.793705" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:21:58.604866" elapsed="0.188942">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:21:58.596842" elapsed="0.197036">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:21:58.596618" elapsed="0.197360">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:21:58.593350" elapsed="0.200729">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:21:58.592983" elapsed="0.201154">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:21:58.592958" elapsed="0.201212">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:21:58.794481" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:21:58.794240" elapsed="0.000300"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:21:58.794223" elapsed="0.000341"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:21:58.591454" elapsed="0.203192">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.811296" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:08.810660" elapsed="0.000743"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:08.810616" elapsed="0.000820"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.813326" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:08.812790" elapsed="0.000569"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.814309" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:22:08.813580" elapsed="0.000764"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:22:08.814451" elapsed="0.000060"/>
</return>
<msg time="2026-04-17T03:22:08.814694" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:22:08.812262" elapsed="0.002465"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.816028" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:08.815687" elapsed="0.000370"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:22:08.816129" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:22:08.816322" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:22:08.815256" elapsed="0.001094"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.915608" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:08.914813" elapsed="0.000901"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:08.917848" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:08.917567" elapsed="0.000362">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:08.918145" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:08.916996" elapsed="0.001247"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.919938" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:08.919237" elapsed="0.000879"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:22:08.921641" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:22:08.921914" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:22:08.921297" elapsed="0.000716"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.923435" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:08.922991" elapsed="0.000554"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.925262" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:08.924985" elapsed="0.000323"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.925769" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:22:08.925489" elapsed="0.000306"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.926358" elapsed="0.000039"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.926627" elapsed="0.000027"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.926809" elapsed="0.000020"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:22:08.925997" elapsed="0.000869"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:22:08.925849" elapsed="0.001048"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:22:08.926946" elapsed="0.000038"/>
</return>
<msg time="2026-04-17T03:22:08.927149" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:22:08.924579" elapsed="0.002618"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:08.923731" elapsed="0.003507"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.927608" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:08.927298" elapsed="0.000392"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:08.923662" elapsed="0.004082"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.929692" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:22:08.928919" elapsed="0.000873"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:22:08.929912" elapsed="0.000070"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:22:08.912167" elapsed="0.018081"/>
</kw>
<msg time="2026-04-17T03:22:08.930555" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:22:08.858224" elapsed="0.072395"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.943015" elapsed="0.000071"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.955028" elapsed="0.000060"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.967061" elapsed="0.000068"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.967519" elapsed="0.000028"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.967721" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.968271" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:08.968096" elapsed="0.000372"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:08.968074" elapsed="0.000424"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.968651" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.968818" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.968982" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:22:08.968026" elapsed="0.001008"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:22:08.967811" elapsed="0.001252"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.969241" elapsed="0.000027"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:08.969328" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:22:08.969527" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:22:08.853325" elapsed="0.116231"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:08.971318" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:08.970853" elapsed="0.000653">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:08.971727" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:08.970355" elapsed="0.001398"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.972105" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:08.971829" elapsed="0.000334"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.972961" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:08.972452" elapsed="0.000538"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:08.972188" elapsed="0.000837"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:08.971809" elapsed="0.001237"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.975572" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:08.973230" elapsed="0.002370"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:22:08.975656" elapsed="0.000036"/>
</return>
<msg time="2026-04-17T03:22:08.975823" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:08.969975" elapsed="0.005873"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:08.977465" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:08.976922" elapsed="0.000695">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:08.977830" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:08.976572" elapsed="0.001284"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:22:08.978086" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-17T03:22:08.977935" elapsed="0.000211"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:08.977915" elapsed="0.000255"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.978317" elapsed="0.000107"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.978584" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:22:08.978652" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:22:08.980870" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:08.976187" elapsed="0.004722"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.982659" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:08.982319" elapsed="0.000392"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:08.983210" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:08.982867" elapsed="0.000407"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:22:08.990888" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:22:08.985963" elapsed="0.006988">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:08.983369" elapsed="0.009724">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.993529" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:08.993150" elapsed="0.000471"/>
</branch>
<status status="FAIL" start="2026-04-17T03:22:08.983341" elapsed="0.010312">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.994444" elapsed="0.000033"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:08.994636" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:22:08.994587" elapsed="0.000098"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:08.994557" elapsed="0.000149"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.994862" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:22:08.994934" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:22:08.981339" elapsed="0.013718">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:08.995142" elapsed="0.000021"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:22:08.828229" elapsed="0.167055">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.995653" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:08.995430" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:08.995404" elapsed="0.000381"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:08.995830" elapsed="0.000017"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:22:08.820884" elapsed="0.175074">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:22:08.815018" elapsed="0.181108">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:22:08.814799" elapsed="0.181413">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:22:08.811802" elapsed="0.184625">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:08.811502" elapsed="0.185008">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:22:08.811483" elapsed="0.185071">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:22:08.996938" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:08.996645" elapsed="0.000366"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:08.996623" elapsed="0.000419"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:22:08.809689" elapsed="0.187460">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.014961" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:19.014336" elapsed="0.000738"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:19.014299" elapsed="0.000822"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.017540" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:19.016860" elapsed="0.000764"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.018347" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:22:19.017873" elapsed="0.000534"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:22:19.018480" elapsed="0.000336"/>
</return>
<msg time="2026-04-17T03:22:19.018956" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:22:19.016231" elapsed="0.002751"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.020041" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:19.019737" elapsed="0.000330"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:22:19.020113" elapsed="0.000028"/>
</return>
<msg time="2026-04-17T03:22:19.020261" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:22:19.019366" elapsed="0.000919"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.119549" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:19.118214" elapsed="0.001462"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:19.122649" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:19.122145" elapsed="0.000726">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:19.123191" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:19.121317" elapsed="0.002059"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.126270" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:19.125302" elapsed="0.001297"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:22:19.128351" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:22:19.128772" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:22:19.127904" elapsed="0.000998"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.130996" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:19.130202" elapsed="0.000947"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.133287" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:19.132923" elapsed="0.000427"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.133965" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:22:19.133596" elapsed="0.000401"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.134613" elapsed="0.000033"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.135212" elapsed="0.000036"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.135484" elapsed="0.000032"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:22:19.134258" elapsed="0.001311"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:22:19.134069" elapsed="0.001545"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:22:19.135682" elapsed="0.000055"/>
</return>
<msg time="2026-04-17T03:22:19.135956" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:22:19.132302" elapsed="0.003721"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:19.131406" elapsed="0.004676"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.136596" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:19.136168" elapsed="0.000534"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:19.131304" elapsed="0.005463"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.139242" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:22:19.137974" elapsed="0.001420"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:22:19.139518" elapsed="0.000079"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:22:19.114294" elapsed="0.025651"/>
</kw>
<msg time="2026-04-17T03:22:19.140307" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:22:19.058201" elapsed="0.082207"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.158179" elapsed="0.000104"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.173938" elapsed="0.000066"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.186235" elapsed="0.000036"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.186494" elapsed="0.000026"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.186682" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.187162" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:19.187005" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:19.186984" elapsed="0.000367"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.187518" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.187687" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.187850" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:22:19.186938" elapsed="0.000966"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:22:19.186767" elapsed="0.001165"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.188110" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:19.188191" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:22:19.188342" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:22:19.051873" elapsed="0.136497"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:19.190025" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:19.189573" elapsed="0.000611">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:19.190420" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:19.189138" elapsed="0.001309"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.190796" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:19.190520" elapsed="0.000334"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.191603" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:19.191072" elapsed="0.000561"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:19.190878" elapsed="0.000792"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:19.190502" elapsed="0.001190"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.194144" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:19.191842" elapsed="0.002329"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:22:19.194224" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:22:19.194394" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:19.188768" elapsed="0.005653"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:19.195875" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:19.195422" elapsed="0.000617">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:19.196303" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:19.195063" elapsed="0.001265"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:22:19.196570" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-17T03:22:19.196429" elapsed="0.000201"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:19.196408" elapsed="0.000246"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.196801" elapsed="0.000022"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.196970" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:22:19.197035" elapsed="0.000017"/>
</return>
<msg time="2026-04-17T03:22:19.199227" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:19.194732" elapsed="0.004522"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.200822" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:19.200532" elapsed="0.000338"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:19.201291" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:19.201023" elapsed="0.000312"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:22:19.207527" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:22:19.203405" elapsed="0.005857">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:19.201424" elapsed="0.007930">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.209569" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:19.209407" elapsed="0.000227"/>
</branch>
<status status="FAIL" start="2026-04-17T03:22:19.201403" elapsed="0.008255">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.210199" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:19.210333" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:22:19.210295" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:19.210278" elapsed="0.000136"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.210559" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:22:19.210628" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:22:19.199628" elapsed="0.011110">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:19.210814" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:22:19.029989" elapsed="0.180922">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.211182" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:19.211006" elapsed="0.000291"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:19.210988" elapsed="0.000335"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:19.211356" elapsed="0.000014"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:22:19.024006" elapsed="0.187467">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:22:19.019190" elapsed="0.192351">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:22:19.019041" elapsed="0.192561">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:22:19.015649" elapsed="0.196055">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:19.015207" elapsed="0.196551">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:22:19.015183" elapsed="0.196607">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:22:19.212115" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:19.211891" elapsed="0.000281"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:19.211873" elapsed="0.000323"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:22:19.013545" elapsed="0.198731">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.228348" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:29.227744" elapsed="0.000750"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:29.227702" elapsed="0.000843"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.231156" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:29.230283" elapsed="0.000933"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.232218" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:22:29.231612" elapsed="0.000650"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:22:29.232333" elapsed="0.000426"/>
</return>
<msg time="2026-04-17T03:22:29.232967" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:22:29.229632" elapsed="0.003378"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.234679" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:29.234151" elapsed="0.000569"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:22:29.234789" elapsed="0.000043"/>
</return>
<msg time="2026-04-17T03:22:29.235007" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:22:29.233624" elapsed="0.001419"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.342841" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:29.341771" elapsed="0.001177"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:29.345063" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:29.344745" elapsed="0.000407">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:29.345473" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:29.344188" elapsed="0.001424"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.348330" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:29.347218" elapsed="0.001707"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:22:29.351749" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:22:29.352352" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:22:29.350774" elapsed="0.001723"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.353991" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:29.353547" elapsed="0.000556"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.356167" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:29.355854" elapsed="0.000363"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.356696" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:22:29.356402" elapsed="0.000320"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.357067" elapsed="0.002047"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.359377" elapsed="0.000043"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.359578" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:22:29.356925" elapsed="0.002712"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:22:29.356778" elapsed="0.002890"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:22:29.359717" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:22:29.359961" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:22:29.355365" elapsed="0.004650"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:29.354302" elapsed="0.005757"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.360420" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:29.360122" elapsed="0.000396"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:29.354221" elapsed="0.006358"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.362798" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:22:29.361806" elapsed="0.001093"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:22:29.362987" elapsed="0.000056"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:22:29.339310" elapsed="0.024088"/>
</kw>
<msg time="2026-04-17T03:22:29.363674" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:22:29.280562" elapsed="0.083175"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.376052" elapsed="0.000050"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.393589" elapsed="0.000067"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.406334" elapsed="0.000144"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.406795" elapsed="0.000030"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.407048" elapsed="0.000034"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.407765" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:29.407554" elapsed="0.000398"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:29.407521" elapsed="0.000464"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.408159" elapsed="0.000046"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.408411" elapsed="0.000023"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.408582" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:22:29.407453" elapsed="0.001182"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:22:29.407158" elapsed="0.001506"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.408814" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:29.408894" elapsed="0.000020"/>
</return>
<msg time="2026-04-17T03:22:29.409068" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:22:29.275955" elapsed="0.133142"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:29.410882" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:29.410372" elapsed="0.000762">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:29.411373" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:29.409959" elapsed="0.001458"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.411787" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:29.411501" elapsed="0.000345"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.412650" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:29.412096" elapsed="0.000582"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:29.411871" elapsed="0.000843"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:29.411479" elapsed="0.001258"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.415429" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:29.412894" elapsed="0.002563"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:22:29.415513" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:22:29.415688" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:29.409575" elapsed="0.006138"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:29.417421" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:29.416962" elapsed="0.000615">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:29.417792" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:29.416566" elapsed="0.001251"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:22:29.418046" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-04-17T03:22:29.417896" elapsed="0.000212"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:29.417875" elapsed="0.000258"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.418281" elapsed="0.000022"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.418469" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:22:29.418537" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:22:29.421104" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:29.416159" elapsed="0.004973"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.422788" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:29.422484" elapsed="0.000354"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:29.423347" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:29.423067" elapsed="0.000340"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:22:29.432882" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:22:29.425491" elapsed="0.009242">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:29.423479" elapsed="0.011354">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.435094" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:29.434873" elapsed="0.000292"/>
</branch>
<status status="FAIL" start="2026-04-17T03:22:29.423459" elapsed="0.011731">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.435786" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:29.435933" elapsed="0.000017"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:22:29.435891" elapsed="0.000087"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:29.435872" elapsed="0.000128"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.436154" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:22:29.436224" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:22:29.421538" elapsed="0.014802">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:29.436439" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:22:29.249369" elapsed="0.187174">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.436888" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:29.436702" elapsed="0.000258"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:29.436684" elapsed="0.000301"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:29.437017" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:22:29.240839" elapsed="0.196279">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:22:29.233343" elapsed="0.203861">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:22:29.233116" elapsed="0.204166">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:22:29.229035" elapsed="0.208386">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:29.228639" elapsed="0.208850">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:22:29.228615" elapsed="0.208911">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:22:29.437876" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:29.437608" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:29.437587" elapsed="0.000382"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:22:29.226730" elapsed="0.211335">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.454951" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:39.454345" elapsed="0.000717"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:39.454309" elapsed="0.000801"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.457319" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:39.456838" elapsed="0.000519"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.458030" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:22:39.457547" elapsed="0.000528"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:22:39.458152" elapsed="0.000056"/>
</return>
<msg time="2026-04-17T03:22:39.458429" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:22:39.456265" elapsed="0.002208"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.460441" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:39.459940" elapsed="0.000593"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:22:39.460586" elapsed="0.000032"/>
</return>
<msg time="2026-04-17T03:22:39.460748" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:22:39.459473" elapsed="0.001301"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.556511" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:39.555639" elapsed="0.000981"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:39.558492" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:39.558193" elapsed="0.000377">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:39.558772" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:39.557661" elapsed="0.001208"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.560835" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:39.559879" elapsed="0.001053"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:22:39.562198" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:22:39.562692" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:22:39.561883" elapsed="0.000907"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.564141" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:39.563742" elapsed="0.000504"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.565758" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:39.565479" elapsed="0.000325"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.566241" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:22:39.565967" elapsed="0.000300"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.566786" elapsed="0.000022"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.566992" elapsed="0.000024"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.567191" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:22:39.566649" elapsed="0.000600"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:22:39.566320" elapsed="0.000961"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:22:39.567328" elapsed="0.000041"/>
</return>
<msg time="2026-04-17T03:22:39.567563" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:22:39.565082" elapsed="0.002536"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:39.564450" elapsed="0.003210"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.567993" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:39.567719" elapsed="0.000352"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:39.564370" elapsed="0.003756"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.569854" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:22:39.569118" elapsed="0.000833"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:22:39.570035" elapsed="0.000053"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:22:39.553035" elapsed="0.017321"/>
</kw>
<msg time="2026-04-17T03:22:39.570883" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:22:39.501808" elapsed="0.069138"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.583522" elapsed="0.000033"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.595829" elapsed="0.000037"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.607954" elapsed="0.000033"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.608189" elapsed="0.000023"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.608448" elapsed="0.000026"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.608926" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:39.608771" elapsed="0.000312"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:39.608752" elapsed="0.000358"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.609255" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.609449" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.609617" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:22:39.608712" elapsed="0.000957"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:22:39.608541" elapsed="0.001155"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.609844" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:39.609923" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:22:39.610067" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:22:39.497294" elapsed="0.112800"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:39.611690" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:39.611231" elapsed="0.000613">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:39.612059" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:39.610842" elapsed="0.001243"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.612472" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:39.612159" elapsed="0.000436"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.613331" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:39.612824" elapsed="0.000534"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:39.612624" elapsed="0.000787"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:39.612140" elapsed="0.001294"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.615813" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:39.613589" elapsed="0.002252"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:22:39.615893" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:22:39.616052" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:39.610488" elapsed="0.005589"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:39.617643" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:39.617240" elapsed="0.000546">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:39.618000" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:39.616902" elapsed="0.001124"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:22:39.618235" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:22:39.618098" elapsed="0.000197"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:39.618080" elapsed="0.000239"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.618488" elapsed="0.000024"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.618660" elapsed="0.000026"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:22:39.618743" elapsed="0.000027"/>
</return>
<msg time="2026-04-17T03:22:39.620952" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:39.616575" elapsed="0.004405"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.622534" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:39.622229" elapsed="0.000353"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:39.623005" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:39.622736" elapsed="0.000315"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:22:39.629960" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:22:39.625340" elapsed="0.007004">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:39.623120" elapsed="0.009371">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.632761" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:39.632540" elapsed="0.000314"/>
</branch>
<status status="FAIL" start="2026-04-17T03:22:39.623100" elapsed="0.009789">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.633668" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:39.633863" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:22:39.633808" elapsed="0.000116"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:39.633784" elapsed="0.000170"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.634194" elapsed="0.000037"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:22:39.634369" elapsed="0.000119"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:22:39.621331" elapsed="0.013330">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:39.634773" elapsed="0.000023"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:22:39.472831" elapsed="0.162128">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.635371" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:39.635103" elapsed="0.000394"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:39.635077" elapsed="0.000454"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:39.635577" elapsed="0.000020"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:22:39.466331" elapsed="0.169390">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:22:39.458795" elapsed="0.177023">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:22:39.458569" elapsed="0.177335">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:22:39.455638" elapsed="0.180402">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:39.455209" elapsed="0.180912">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:22:39.455180" elapsed="0.181006">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:22:39.636703" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:39.636330" elapsed="0.000457"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:39.636279" elapsed="0.000542"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:22:39.453531" elapsed="0.183408">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.651699" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:49.651229" elapsed="0.000571"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:49.651199" elapsed="0.000634"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.653585" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:49.653038" elapsed="0.000577"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.654521" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:22:49.653872" elapsed="0.000677"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:22:49.654600" elapsed="0.000043"/>
</return>
<msg time="2026-04-17T03:22:49.654779" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:22:49.652587" elapsed="0.002216"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.655879" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:49.655569" elapsed="0.000337"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:22:49.655953" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:22:49.656106" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:22:49.655198" elapsed="0.000933"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.749118" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:49.748405" elapsed="0.000820"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:49.751430" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:49.751113" elapsed="0.000396">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:49.751713" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:49.750279" elapsed="0.001540"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.753503" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:49.752813" elapsed="0.000791"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:22:49.755243" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:22:49.755536" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:22:49.754918" elapsed="0.000716"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.757017" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:49.756601" elapsed="0.000527"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.758813" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:49.758538" elapsed="0.000326"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.759307" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:22:49.759031" elapsed="0.000303"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.759910" elapsed="0.000024"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.760131" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.760312" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:22:49.759549" elapsed="0.000822"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:22:49.759402" elapsed="0.001016"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:22:49.760468" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:22:49.760662" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:22:49.757988" elapsed="0.002725"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:49.757294" elapsed="0.003461"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.761105" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:49.760815" elapsed="0.000374"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:49.757235" elapsed="0.004070"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.763237" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:22:49.762325" elapsed="0.001010"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:22:49.763437" elapsed="0.000053"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:22:49.745745" elapsed="0.017992"/>
</kw>
<msg time="2026-04-17T03:22:49.764003" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:22:49.692680" elapsed="0.071387"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.776302" elapsed="0.000034"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.788164" elapsed="0.000032"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.799980" elapsed="0.000028"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.800198" elapsed="0.000023"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.800379" elapsed="0.000037"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.800868" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:49.800712" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:49.800693" elapsed="0.000370"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.801211" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.801414" elapsed="0.000023"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.801594" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:22:49.800649" elapsed="0.001003"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:22:49.800486" elapsed="0.001194"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.801827" elapsed="0.000037"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:49.801922" elapsed="0.000017"/>
</return>
<msg time="2026-04-17T03:22:49.802065" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:22:49.688136" elapsed="0.113956"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:49.804002" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:49.803350" elapsed="0.000809">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:49.804379" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:49.802963" elapsed="0.001463"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.804774" elapsed="0.000173"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:49.804501" elapsed="0.000483"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.805773" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:49.805224" elapsed="0.000577"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:49.805009" elapsed="0.000843"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:49.804482" elapsed="0.001394"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.808291" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:49.806032" elapsed="0.002286"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:22:49.808372" elapsed="0.000046"/>
</return>
<msg time="2026-04-17T03:22:49.808547" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:49.802604" elapsed="0.005971"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:49.810034" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:49.809574" elapsed="0.000616">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:49.810435" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:49.809218" elapsed="0.001244"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:22:49.810703" elapsed="0.000029"/>
</return>
<status status="PASS" start="2026-04-17T03:22:49.810541" elapsed="0.000226"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:49.810521" elapsed="0.000271"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.810950" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.811127" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:22:49.811194" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:22:49.813402" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:49.808886" elapsed="0.004544"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.815079" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:49.814780" elapsed="0.000348"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:49.815580" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:49.815285" elapsed="0.000342"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:22:49.821695" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:22:49.817714" elapsed="0.005703">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:49.815700" elapsed="0.007807">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.823695" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:49.823541" elapsed="0.000222"/>
</branch>
<status status="FAIL" start="2026-04-17T03:22:49.815678" elapsed="0.008163">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.824402" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:49.824539" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:22:49.824502" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:49.824485" elapsed="0.000117"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.824748" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:22:49.824820" elapsed="0.000019"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:22:49.813816" elapsed="0.011124">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:49.825019" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:22:49.666309" elapsed="0.158810">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.825410" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:49.825215" elapsed="0.000269"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:49.825199" elapsed="0.000308"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:49.825540" elapsed="0.000014"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:22:49.660074" elapsed="0.165567">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:22:49.655014" elapsed="0.170696">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:22:49.654863" elapsed="0.170911">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:22:49.652162" elapsed="0.173745">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:49.651892" elapsed="0.174076">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:22:49.651876" elapsed="0.174124">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:22:49.826295" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:49.826070" elapsed="0.000281"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:49.826053" elapsed="0.000321"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:22:49.650632" elapsed="0.175866">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.843964" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:59.843571" elapsed="0.000472"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:59.843531" elapsed="0.000538"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.845729" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:59.845229" elapsed="0.000549"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.846271" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:22:59.845951" elapsed="0.000346"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:22:59.846347" elapsed="0.000341"/>
</return>
<msg time="2026-04-17T03:22:59.846831" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:22:59.844802" elapsed="0.002055"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.847939" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:59.847607" elapsed="0.000361"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:22:59.848016" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:22:59.848167" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:22:59.847236" elapsed="0.000955"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.938338" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:59.937696" elapsed="0.001069"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:59.940539" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:59.940253" elapsed="0.000362">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:59.940812" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:59.939757" elapsed="0.001151"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.942855" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:59.941899" elapsed="0.001054"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:22:59.944233" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:22:59.944526" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:22:59.943911" elapsed="0.000712"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.945982" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:59.945579" elapsed="0.000511"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.947975" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:22:59.947507" elapsed="0.000532"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.948681" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:22:59.948266" elapsed="0.000451"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.949176" elapsed="0.000032"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.949704" elapsed="0.000037"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.949955" elapsed="0.000029"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:22:59.948989" elapsed="0.001137"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:22:59.948787" elapsed="0.001384"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:22:59.950234" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:22:59.950767" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:22:59.947031" elapsed="0.003804"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:59.946244" elapsed="0.004648"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.951348" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:59.950972" elapsed="0.000510"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:59.946191" elapsed="0.005361"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.953205" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:22:59.952499" elapsed="0.000803"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:22:59.953401" elapsed="0.000054"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:22:59.935422" elapsed="0.018281"/>
</kw>
<msg time="2026-04-17T03:22:59.953957" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:22:59.884428" elapsed="0.069582"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.966091" elapsed="0.000029"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.977831" elapsed="0.000029"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.989502" elapsed="0.000028"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.989698" elapsed="0.000023"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.989872" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.990284" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:59.990139" elapsed="0.000344"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:22:59.990124" elapsed="0.000387"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.990654" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.990820" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.990983" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:22:59.990092" elapsed="0.000944"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:22:59.989947" elapsed="0.001114"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.991204" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:22:59.991320" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:22:59.991458" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:22:59.880287" elapsed="0.111202"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:59.992957" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:59.992554" elapsed="0.000551">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:59.993312" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:59.992182" elapsed="0.001155"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.993678" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:22:59.993425" elapsed="0.000310"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.994491" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:22:59.993952" elapsed="0.000567"/>
</kw>
<status status="PASS" start="2026-04-17T03:22:59.993759" elapsed="0.000795"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:59.993405" elapsed="0.001170"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:22:59.996921" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:22:59.994725" elapsed="0.002223"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:22:59.996998" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:22:59.997151" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:59.991846" elapsed="0.005330"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:22:59.998573" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:22:59.998155" elapsed="0.000559">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:22:59.998925" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:22:59.997814" elapsed="0.001141"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:22:59.999164" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:22:59.999027" elapsed="0.000196"/>
</branch>
<status status="PASS" start="2026-04-17T03:22:59.999009" elapsed="0.000238"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.999416" elapsed="0.000025"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:22:59.999589" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:22:59.999653" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:23:00.001640" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:22:59.997492" elapsed="0.004174"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:00.003330" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:00.003047" elapsed="0.000331"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:00.003815" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:00.003547" elapsed="0.000313"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:23:00.009307" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:23:00.005918" elapsed="0.005125">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:00.003928" elapsed="0.007245">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:00.011362" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:00.011209" elapsed="0.000236"/>
</branch>
<status status="FAIL" start="2026-04-17T03:23:00.003910" elapsed="0.007559">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:00.012016" elapsed="0.000032"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:00.012183" elapsed="0.000017"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:23:00.012135" elapsed="0.000101"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:00.012115" elapsed="0.000147"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:00.012448" elapsed="0.000028"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:23:00.012530" elapsed="0.000019"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:23:00.002012" elapsed="0.010635">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:00.012735" elapsed="0.000018"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:22:59.857995" elapsed="0.154858">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:00.013182" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:00.012965" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:00.012945" elapsed="0.000367"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:00.013353" elapsed="0.000020"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:22:59.852031" elapsed="0.161478">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:22:59.847061" elapsed="0.166542">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:22:59.846914" elapsed="0.166778">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:22:59.844408" elapsed="0.169418">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:22:59.844126" elapsed="0.169762">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:22:59.844110" elapsed="0.169842">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:23:00.014252" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:00.014027" elapsed="0.000284"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:00.014009" elapsed="0.000325"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:22:59.842994" elapsed="0.171485">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.031307" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:10.030838" elapsed="0.000570"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:10.030796" elapsed="0.000641"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.033123" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:10.032638" elapsed="0.000513"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.033658" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:23:10.033324" elapsed="0.000361"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:23:10.033733" elapsed="0.000278"/>
</return>
<msg time="2026-04-17T03:23:10.034150" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:23:10.032185" elapsed="0.001991"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.035271" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:10.034955" elapsed="0.000342"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:23:10.035343" elapsed="0.000030"/>
</return>
<msg time="2026-04-17T03:23:10.035510" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:23:10.034571" elapsed="0.000964"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.128835" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:10.128075" elapsed="0.000872"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:10.130994" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:10.130672" elapsed="0.000402">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:10.131274" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:10.130100" elapsed="0.001271"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.133413" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:10.132685" elapsed="0.000829"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:23:10.134861" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:23:10.135138" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:23:10.134510" elapsed="0.000728"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.136826" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:10.136415" elapsed="0.000521"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.138643" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:10.138272" elapsed="0.000482"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.139215" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:23:10.138924" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.141513" elapsed="0.000029"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.141755" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.141933" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:23:10.139571" elapsed="0.002421"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:23:10.139296" elapsed="0.002729"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:23:10.142073" elapsed="0.000037"/>
</return>
<msg time="2026-04-17T03:23:10.142280" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:23:10.137850" elapsed="0.004481"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:10.137192" elapsed="0.005182"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.142786" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:10.142481" elapsed="0.000386"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:10.137132" elapsed="0.005791"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.144895" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:23:10.144112" elapsed="0.000884"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:23:10.145081" elapsed="0.000054"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:23:10.125577" elapsed="0.019824"/>
</kw>
<msg time="2026-04-17T03:23:10.145665" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:23:10.073923" elapsed="0.071801"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.158186" elapsed="0.000030"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.172407" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.184203" elapsed="0.000034"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.184452" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.184639" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.185108" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:10.184954" elapsed="0.000378"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:10.184935" elapsed="0.000428"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.185534" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.185706" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.185874" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:23:10.184891" elapsed="0.001038"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:23:10.184724" elapsed="0.001236"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.186108" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:10.186187" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:23:10.186332" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:23:10.068430" elapsed="0.117930"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:10.188098" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:10.187600" elapsed="0.000652">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:10.188483" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:10.187173" elapsed="0.001336"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.188914" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:10.188584" elapsed="0.000392"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.189765" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:10.189233" elapsed="0.000560"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:10.189001" elapsed="0.000829"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:10.188564" elapsed="0.001288"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.192302" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:10.190006" elapsed="0.002323"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:23:10.192396" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:23:10.192559" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:10.186812" elapsed="0.005773"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:10.193999" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:10.193598" elapsed="0.000564">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:10.194378" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:10.193234" elapsed="0.001190"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:23:10.194685" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-17T03:23:10.194499" elapsed="0.000247"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:10.194480" elapsed="0.000291"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.194919" elapsed="0.000022"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.195088" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:23:10.195153" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:23:10.197316" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:10.192901" elapsed="0.004446"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.199219" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:10.198892" elapsed="0.000380"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:10.199737" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:10.199452" elapsed="0.000333"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:23:10.206127" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:23:10.201948" elapsed="0.005924">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:10.199865" elapsed="0.008100">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.208164" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:10.208002" elapsed="0.000229"/>
</branch>
<status status="FAIL" start="2026-04-17T03:23:10.199841" elapsed="0.008414">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.208842" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:10.208984" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:23:10.208943" elapsed="0.000085"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:10.208925" elapsed="0.000124"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.209192" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:23:10.209263" elapsed="0.000014"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:23:10.197880" elapsed="0.011495">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:10.209485" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:23:10.045487" elapsed="0.164102">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.209869" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:10.209686" elapsed="0.000255"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:10.209669" elapsed="0.000295"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:10.209996" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:23:10.039437" elapsed="0.170660">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:23:10.034381" elapsed="0.175784">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:23:10.034233" elapsed="0.176047">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:23:10.031766" elapsed="0.178658">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:10.031496" elapsed="0.178989">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:23:10.031479" elapsed="0.179039">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:23:10.210834" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:10.210608" elapsed="0.000284"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:10.210590" elapsed="0.000326"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:23:10.029906" elapsed="0.181092">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.229891" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:20.229516" elapsed="0.000450"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:20.229491" elapsed="0.000501"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.231844" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:20.231365" elapsed="0.000508"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.232352" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:23:20.232038" elapsed="0.000341"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:23:20.232444" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:23:20.232615" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:23:20.230938" elapsed="0.001703"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.234036" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:20.233686" elapsed="0.000379"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:23:20.234114" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:23:20.234273" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:23:20.233301" elapsed="0.000998"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.338192" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:20.337491" elapsed="0.000808"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:20.340174" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:20.339872" elapsed="0.000436">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:20.340830" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:20.339332" elapsed="0.001597"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.342805" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:20.342029" elapsed="0.000986"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:23:20.344362" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:23:20.344690" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:23:20.344022" elapsed="0.000766"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.346440" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:20.345948" elapsed="0.000649"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.348258" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:20.347975" elapsed="0.000331"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.348930" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:23:20.348641" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.349297" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.349534" elapsed="0.000025"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.349718" elapsed="0.000028"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:23:20.349159" elapsed="0.000626"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:23:20.349012" elapsed="0.000804"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:23:20.349865" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:23:20.350067" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:23:20.347550" elapsed="0.002568"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:20.346784" elapsed="0.003378"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.350567" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:20.350223" elapsed="0.000430"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:20.346714" elapsed="0.003994"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.352812" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:23:20.351849" elapsed="0.001064"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:23:20.352999" elapsed="0.000056"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:23:20.334842" elapsed="0.018662"/>
</kw>
<msg time="2026-04-17T03:23:20.353771" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:23:20.274643" elapsed="0.079193"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.366403" elapsed="0.000075"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.378717" elapsed="0.000048"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.391003" elapsed="0.000061"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.391461" elapsed="0.000026"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.391654" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.392169" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:20.392011" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:20.391992" elapsed="0.000368"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.392538" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.392709" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.392875" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:23:20.391950" elapsed="0.000978"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:23:20.391743" elapsed="0.001212"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.393100" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:20.393180" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:23:20.393332" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:23:20.268526" elapsed="0.124835"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:20.395014" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:20.394564" elapsed="0.000607">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:20.395427" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:20.394141" elapsed="0.001326"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.395815" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:20.395544" elapsed="0.000328"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.396637" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:20.396094" elapsed="0.000570"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:20.395896" elapsed="0.000803"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:20.395525" elapsed="0.001195"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.399267" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:20.396871" elapsed="0.002424"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:23:20.399348" elapsed="0.000046"/>
</return>
<msg time="2026-04-17T03:23:20.399525" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:20.393782" elapsed="0.005769"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:20.400981" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:20.400577" elapsed="0.000702">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:20.401557" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:20.400200" elapsed="0.001383"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:23:20.401798" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-17T03:23:20.401658" elapsed="0.000200"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:20.401639" elapsed="0.000243"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.402039" elapsed="0.000070"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.402264" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:23:20.402330" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:23:20.404452" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:20.399867" elapsed="0.004614"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.405988" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:20.405702" elapsed="0.000334"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:20.406497" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:20.406189" elapsed="0.000354"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:23:20.597347" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:23:20.408607" elapsed="0.193224">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:20.406611" elapsed="0.195449">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.602690" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:20.602150" elapsed="0.000703"/>
</branch>
<status status="FAIL" start="2026-04-17T03:23:20.406592" elapsed="0.196316">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.604380" elapsed="0.000116"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:20.604762" elapsed="0.000034"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:23:20.604673" elapsed="0.000185"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:20.604629" elapsed="0.000278"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.605232" elapsed="0.000050"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:23:20.605419" elapsed="0.000036"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:23:20.404840" elapsed="0.200837">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:20.605852" elapsed="0.000036"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:23:20.245107" elapsed="0.361011">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.607041" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:20.606508" elapsed="0.000765"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:20.606447" elapsed="0.000908"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:20.607502" elapsed="0.000048"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:23:20.238203" elapsed="0.369621">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:23:20.232843" elapsed="0.375322">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:23:20.232698" elapsed="0.375664">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:23:20.230533" elapsed="0.378242">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:20.230222" elapsed="0.378745">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:23:20.230205" elapsed="0.378873">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:23:20.610110" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:20.609305" elapsed="0.000993"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:20.609249" elapsed="0.001234"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:23:20.228970" elapsed="0.381797">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.627238" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:30.626726" elapsed="0.000596"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:30.626687" elapsed="0.000664"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.629038" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:30.628569" elapsed="0.000500"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.629900" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:23:30.629249" elapsed="0.000680"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:23:30.629980" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:23:30.630208" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:23:30.628111" elapsed="0.002126"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.631380" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:30.631040" elapsed="0.000390"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:23:30.631478" elapsed="0.000033"/>
</return>
<msg time="2026-04-17T03:23:30.631636" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:23:30.630666" elapsed="0.000996"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.724768" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:30.723981" elapsed="0.000897"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:30.727260" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:30.726939" elapsed="0.000520">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:30.727674" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:30.726314" elapsed="0.001461"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.729603" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:30.728828" elapsed="0.000880"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:23:30.731176" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:23:30.732260" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:23:30.730797" elapsed="0.001572"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.734153" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:30.733602" elapsed="0.000672"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.735872" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:30.735586" elapsed="0.000335"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.736371" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:23:30.736088" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.737024" elapsed="0.000024"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.737253" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.737629" elapsed="0.000025"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:23:30.736638" elapsed="0.001055"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:23:30.736489" elapsed="0.001237"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:23:30.737778" elapsed="0.000049"/>
</return>
<msg time="2026-04-17T03:23:30.738012" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:23:30.735149" elapsed="0.002914"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:30.734479" elapsed="0.003675"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.738527" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:30.738222" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:30.734413" elapsed="0.004256"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.740528" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:23:30.739671" elapsed="0.000965"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:23:30.740727" elapsed="0.000061"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:23:30.720936" elapsed="0.020116"/>
</kw>
<msg time="2026-04-17T03:23:30.741324" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:23:30.668039" elapsed="0.073505"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.754002" elapsed="0.000056"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.766398" elapsed="0.000056"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.778657" elapsed="0.000056"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.778950" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.779142" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.779692" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:30.779532" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:30.779511" elapsed="0.000388"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.780049" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.780220" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.780407" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:23:30.779470" elapsed="0.000994"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:23:30.779227" elapsed="0.001265"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.780643" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:30.780723" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:23:30.780885" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:23:30.663688" elapsed="0.117226"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:30.782624" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:30.782150" elapsed="0.000634">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:30.783004" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:30.781701" elapsed="0.001330"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.783421" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:30.783108" elapsed="0.000375"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.784236" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:30.783711" elapsed="0.000553"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:30.783507" elapsed="0.000794"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:30.783087" elapsed="0.001236"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.786831" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:30.784497" elapsed="0.002365"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:23:30.786929" elapsed="0.000037"/>
</return>
<msg time="2026-04-17T03:23:30.787102" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:30.781317" elapsed="0.005810"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:30.788750" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:30.788233" elapsed="0.000669">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:30.789189" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:30.787867" elapsed="0.001348"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:23:30.789466" elapsed="0.000029"/>
</return>
<status status="PASS" start="2026-04-17T03:23:30.789297" elapsed="0.000233"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:30.789274" elapsed="0.000281"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.789704" elapsed="0.000024"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.789919" elapsed="0.000029"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:23:30.790005" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:23:30.792274" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:30.787511" elapsed="0.004794"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.793959" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:30.793639" elapsed="0.000372"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:30.794519" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:30.794222" elapsed="0.000344"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:23:30.801596" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:23:30.796779" elapsed="0.006671">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:30.794641" elapsed="0.008921">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.803840" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:30.803606" elapsed="0.000306"/>
</branch>
<status status="FAIL" start="2026-04-17T03:23:30.794619" elapsed="0.009318">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.804560" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:30.804707" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:23:30.804664" elapsed="0.000087"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:30.804644" elapsed="0.000129"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.804936" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:23:30.805009" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:23:30.792757" elapsed="0.012371">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:30.805209" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:23:30.641895" elapsed="0.163417">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.805622" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:30.805429" elapsed="0.000335"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:30.805410" elapsed="0.000379"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:30.805824" elapsed="0.000018"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:23:30.635580" elapsed="0.170354">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:23:30.630473" elapsed="0.175531">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:23:30.630297" elapsed="0.175851">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:23:30.627695" elapsed="0.178588">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:30.627429" elapsed="0.178913">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:23:30.627411" elapsed="0.178963">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:23:30.806697" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:30.806467" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:30.806449" elapsed="0.000330"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:23:30.625753" elapsed="0.181106">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.820688" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:40.820186" elapsed="0.000589"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:40.820155" elapsed="0.000651"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.822791" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:40.822203" elapsed="0.000625"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.823426" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:23:40.823033" elapsed="0.000425"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:23:40.823514" elapsed="0.000363"/>
</return>
<msg time="2026-04-17T03:23:40.824039" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:23:40.821680" elapsed="0.002390"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.825368" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:40.824994" elapsed="0.000425"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:23:40.825474" elapsed="0.000037"/>
</return>
<msg time="2026-04-17T03:23:40.825654" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:23:40.824557" elapsed="0.001127"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.931354" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:40.930618" elapsed="0.001149"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:40.933624" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:40.933323" elapsed="0.000382">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:40.933992" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:40.932792" elapsed="0.001299"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.936210" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:40.935136" elapsed="0.001185"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:23:40.937719" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:23:40.938025" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:23:40.937338" elapsed="0.000786"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.939787" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:40.939142" elapsed="0.000766"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.941538" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:40.941168" elapsed="0.000421"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.942098" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:23:40.941808" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.942677" elapsed="0.000025"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.943124" elapsed="0.000027"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.943318" elapsed="0.000037"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:23:40.942330" elapsed="0.001111"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:23:40.942182" elapsed="0.001311"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:23:40.943562" elapsed="0.000052"/>
</return>
<msg time="2026-04-17T03:23:40.943855" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:23:40.940764" elapsed="0.003166"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:40.940083" elapsed="0.003912"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.944559" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:40.944099" elapsed="0.000585"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:40.940022" elapsed="0.004746"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.947813" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:23:40.946373" elapsed="0.001591"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:23:40.948093" elapsed="0.000081"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:23:40.928201" elapsed="0.020387"/>
</kw>
<msg time="2026-04-17T03:23:40.948979" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:23:40.870792" elapsed="0.078274"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.963020" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.976927" elapsed="0.000045"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.989333" elapsed="0.000078"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.989638" elapsed="0.000026"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.989854" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.990429" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:40.990199" elapsed="0.000405"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:40.990179" elapsed="0.000454"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.990778" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.990948" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.991115" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:23:40.990135" elapsed="0.001034"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:23:40.989941" elapsed="0.001256"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.991410" elapsed="0.000027"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:40.991501" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:23:40.991664" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:23:40.865244" elapsed="0.126448"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:40.993492" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:40.992988" elapsed="0.000670">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:40.993970" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:40.992536" elapsed="0.001462"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:40.994378" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:40.994084" elapsed="0.000373"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.995278" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:40.994696" elapsed="0.000615"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:40.994484" elapsed="0.000873"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:40.994061" elapsed="0.001320"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:40.997973" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:40.995568" elapsed="0.002437"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:23:40.998067" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:23:40.998249" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:40.992097" elapsed="0.006180"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:41.000039" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:40.999535" elapsed="0.000675">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:41.000464" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:40.999110" elapsed="0.001389"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:23:41.000749" elapsed="0.000032"/>
</return>
<status status="PASS" start="2026-04-17T03:23:41.000588" elapsed="0.000230"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:41.000564" elapsed="0.000281"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:41.001004" elapsed="0.000024"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:41.001185" elapsed="0.000023"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:23:41.001255" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:23:41.003661" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:40.998740" elapsed="0.004965"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:41.006325" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:41.005863" elapsed="0.000534"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:41.006868" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:41.006562" elapsed="0.000355"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:23:41.013326" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:23:41.009137" elapsed="0.005951">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:41.006998" elapsed="0.008185">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:41.015399" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:41.015219" elapsed="0.000249"/>
</branch>
<status status="FAIL" start="2026-04-17T03:23:41.006975" elapsed="0.008518">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:41.016111" elapsed="0.000032"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:41.016264" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:23:41.016221" elapsed="0.000093"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:41.016202" elapsed="0.000134"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:41.016513" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:23:41.016587" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:23:41.004293" elapsed="0.012413">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:41.016796" elapsed="0.000018"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:23:40.837973" elapsed="0.178931">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:41.017251" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:41.017063" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:41.017045" elapsed="0.000314"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:41.017409" elapsed="0.000017"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:23:40.830463" elapsed="0.187055">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:23:40.824312" elapsed="0.193277">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:23:40.824137" elapsed="0.193519">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:23:40.821180" elapsed="0.196628">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:40.820873" elapsed="0.197001">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:23:40.820854" elapsed="0.197054">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:23:41.018212" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:41.017979" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:41.017961" elapsed="0.000355"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:23:40.819511" elapsed="0.198921">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.035117" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:51.034613" elapsed="0.000608"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:51.034577" elapsed="0.000681"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.037647" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:51.036945" elapsed="0.000744"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.038192" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:23:51.037861" elapsed="0.000359"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:23:51.038268" elapsed="0.000287"/>
</return>
<msg time="2026-04-17T03:23:51.038699" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:23:51.036325" elapsed="0.002403"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.039839" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:51.039522" elapsed="0.000414"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:23:51.039995" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:23:51.040153" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:23:51.039117" elapsed="0.001061"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.130165" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:51.129513" elapsed="0.000755"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:51.132319" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:51.132026" elapsed="0.000389">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:51.132614" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:51.131523" elapsed="0.001190"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.134643" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:51.133722" elapsed="0.001024"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:23:51.136030" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:23:51.136305" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:23:51.135710" elapsed="0.000709"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.137823" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:51.137415" elapsed="0.000516"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.139368" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:51.139099" elapsed="0.000357"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.139893" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:23:51.139618" elapsed="0.000301"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.142090" elapsed="0.000027"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.142315" elapsed="0.000024"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.142660" elapsed="0.000023"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:23:51.140110" elapsed="0.002611"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:23:51.139970" elapsed="0.002783"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:23:51.142799" elapsed="0.000032"/>
</return>
<msg time="2026-04-17T03:23:51.142989" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:23:51.138722" elapsed="0.004317"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:51.138086" elapsed="0.004995"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.143449" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:51.143141" elapsed="0.000417"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:51.138031" elapsed="0.005586"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.145516" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:23:51.144665" elapsed="0.000953"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:23:51.145718" elapsed="0.000068"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:23:51.127121" elapsed="0.018920"/>
</kw>
<msg time="2026-04-17T03:23:51.146350" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:23:51.075793" elapsed="0.070839"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.159076" elapsed="0.000029"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.171462" elapsed="0.000045"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.186427" elapsed="0.000030"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.186648" elapsed="0.000023"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.186832" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.187292" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:51.187137" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:51.187119" elapsed="0.000383"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.187648" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.187817" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.187981" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:23:51.187077" elapsed="0.000957"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:23:51.186915" elapsed="0.001146"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.188206" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:51.188282" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:23:51.188445" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:23:51.071724" elapsed="0.116763"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:51.190171" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:51.189707" elapsed="0.000620">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:51.190561" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:51.189233" elapsed="0.001359"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.190941" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:51.190673" elapsed="0.000476"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.191936" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:23:51.191399" elapsed="0.000566"/>
</kw>
<status status="PASS" start="2026-04-17T03:23:51.191180" elapsed="0.000821"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:51.190654" elapsed="0.001369"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.194426" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:23:51.192176" elapsed="0.002278"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:23:51.194506" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:23:51.194664" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:51.188874" elapsed="0.005814"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:23:51.196084" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:23:51.195692" elapsed="0.000538">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:23:51.196467" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:23:51.195333" elapsed="0.001160"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:23:51.196705" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:23:51.196567" elapsed="0.000197"/>
</branch>
<status status="PASS" start="2026-04-17T03:23:51.196548" elapsed="0.000240"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.196934" elapsed="0.000021"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.197103" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:23:51.197168" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:23:51.199221" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:23:51.194991" elapsed="0.004258"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.200808" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:51.200522" elapsed="0.000334"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:23:51.201289" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:23:51.201017" elapsed="0.000349"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:23:51.207495" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:23:51.203449" elapsed="0.005765">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:51.201451" elapsed="0.007853">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.209603" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:51.209435" elapsed="0.000233"/>
</branch>
<status status="FAIL" start="2026-04-17T03:23:51.201432" elapsed="0.008260">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.210466" elapsed="0.000038"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:51.210723" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:23:51.210669" elapsed="0.000114"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:51.210642" elapsed="0.000171"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.211018" elapsed="0.000031"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:23:51.211173" elapsed="0.000023"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:23:51.199624" elapsed="0.011710">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:51.211469" elapsed="0.000022"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:23:51.050036" elapsed="0.161574">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.212003" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:51.211746" elapsed="0.000359"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:51.211722" elapsed="0.000416"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:23:51.212183" elapsed="0.000022"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:23:51.044009" elapsed="0.168319">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:23:51.038935" elapsed="0.173574">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:23:51.038787" elapsed="0.173810">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:23:51.035731" elapsed="0.176998">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:23:51.035338" elapsed="0.177467">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:23:51.035316" elapsed="0.177533">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:23:51.213248" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:23:51.212942" elapsed="0.000421"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:23:51.212919" elapsed="0.000500"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:23:51.033876" elapsed="0.179657">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.230512" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:01.230023" elapsed="0.000591"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:01.229985" elapsed="0.000665"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.234299" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:01.232765" elapsed="0.001647"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.236302" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:24:01.235232" elapsed="0.001141"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:24:01.236529" elapsed="0.000126"/>
</return>
<msg time="2026-04-17T03:24:01.237154" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:24:01.231412" elapsed="0.005825"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.241592" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:01.240601" elapsed="0.001082"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:24:01.241822" elapsed="0.000084"/>
</return>
<msg time="2026-04-17T03:24:01.242170" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:24:01.239594" elapsed="0.002614"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.349697" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:01.348896" elapsed="0.000926"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:01.352572" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:01.351696" elapsed="0.000968">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:01.352880" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:01.350858" elapsed="0.002142"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.354834" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:01.354042" elapsed="0.000893"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:24:01.357238" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:24:01.357605" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:24:01.356820" elapsed="0.000887"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.359734" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:01.359121" elapsed="0.000763"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.361675" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:01.361367" elapsed="0.000357"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.362179" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:24:01.361891" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.362750" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.362977" elapsed="0.000025"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.363158" elapsed="0.000024"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:24:01.362608" elapsed="0.000610"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:24:01.362261" elapsed="0.000988"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:24:01.363299" elapsed="0.000043"/>
</return>
<msg time="2026-04-17T03:24:01.363531" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:24:01.360845" elapsed="0.002735"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:01.360090" elapsed="0.003532"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.363961" elapsed="0.000069"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:01.363685" elapsed="0.000391"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:01.360023" elapsed="0.004193"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.366126" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:24:01.365293" elapsed="0.000939"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:24:01.366322" elapsed="0.000228"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:24:01.346186" elapsed="0.020624"/>
</kw>
<msg time="2026-04-17T03:24:01.367078" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:24:01.287981" elapsed="0.079163"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.381858" elapsed="0.000068"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.394652" elapsed="0.000043"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.407799" elapsed="0.000036"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.408051" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.408247" elapsed="0.000023"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.408788" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:01.408604" elapsed="0.000394"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:01.408583" elapsed="0.000448"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.409190" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.409368" elapsed="0.000044"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.409565" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:24:01.408532" elapsed="0.001090"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:24:01.408339" elapsed="0.001312"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.409800" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:01.409883" elapsed="0.000020"/>
</return>
<msg time="2026-04-17T03:24:01.410045" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:24:01.282915" elapsed="0.127159"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:01.411850" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:01.411371" elapsed="0.000643">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:01.412295" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:01.410935" elapsed="0.001387"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.412695" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:01.412415" elapsed="0.000340"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.413757" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:01.413038" elapsed="0.000758"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:01.412781" elapsed="0.001068"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:01.412379" elapsed="0.001502"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.417990" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:01.414110" elapsed="0.003918"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:24:01.418102" elapsed="0.000052"/>
</return>
<msg time="2026-04-17T03:24:01.418344" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:01.410561" elapsed="0.007817"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:01.420430" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:01.419836" elapsed="0.000803">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:01.420986" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:01.419322" elapsed="0.001701"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:24:01.421278" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-17T03:24:01.421129" elapsed="0.000209"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:01.421102" elapsed="0.000260"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.421525" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.421696" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:24:01.421761" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:24:01.423891" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:01.418845" elapsed="0.005073"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.425437" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:01.425135" elapsed="0.000350"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:01.425906" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:01.425638" elapsed="0.000313"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:24:01.431602" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:24:01.428037" elapsed="0.006684">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:01.426018" elapsed="0.008901">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.435356" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:01.434996" elapsed="0.000539"/>
</branch>
<status status="FAIL" start="2026-04-17T03:24:01.425999" elapsed="0.009678">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.436989" elapsed="0.000061"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:01.437290" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:24:01.437208" elapsed="0.000203"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:01.437170" elapsed="0.000292"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.437788" elapsed="0.000047"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:24:01.437941" elapsed="0.000033"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:24:01.424277" elapsed="0.013911">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:01.438358" elapsed="0.000062"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:24:01.257896" elapsed="0.180723">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.439259" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:01.438831" elapsed="0.000621"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:01.438794" elapsed="0.000714"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:01.439581" elapsed="0.000033"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:24:01.248705" elapsed="0.191107">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:24:01.237992" elapsed="0.202003">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:24:01.237484" elapsed="0.202650">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:24:01.230978" elapsed="0.209380">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:01.230709" elapsed="0.209859">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:24:01.230694" elapsed="0.210012">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:24:01.441379" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:01.440979" elapsed="0.000505"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:01.440877" elapsed="0.000642"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:24:01.229170" elapsed="0.212466">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.458331" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:11.457936" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:11.457908" elapsed="0.000550"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.460128" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:11.459645" elapsed="0.000513"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.460934" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:24:11.460323" elapsed="0.000639"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:24:11.461012" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:24:11.461186" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:24:11.459189" elapsed="0.002023"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.462271" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:11.461964" elapsed="0.000334"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:24:11.462344" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:24:11.462511" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:24:11.461608" elapsed="0.000928"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.551153" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:11.550470" elapsed="0.000788"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:11.553310" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:11.553043" elapsed="0.000376">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:11.553623" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:11.552518" elapsed="0.001201"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.555845" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:11.555154" elapsed="0.000789"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:24:11.557265" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:24:11.557583" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:24:11.556944" elapsed="0.000736"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.559037" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:11.558637" elapsed="0.000509"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.560838" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:11.560558" elapsed="0.000339"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.561415" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:24:11.561076" elapsed="0.000376"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.562104" elapsed="0.000034"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.562409" elapsed="0.000037"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.562692" elapsed="0.000025"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:24:11.561681" elapsed="0.001141"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:24:11.561513" elapsed="0.001342"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:24:11.562903" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:24:11.563105" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:24:11.560118" elapsed="0.003037"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:11.559340" elapsed="0.003857"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.563548" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:11.563255" elapsed="0.000374"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:11.559281" elapsed="0.004404"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.565485" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:24:11.564710" elapsed="0.000876"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:24:11.565670" elapsed="0.000053"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:24:11.548060" elapsed="0.017910"/>
</kw>
<msg time="2026-04-17T03:24:11.566233" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:24:11.497655" elapsed="0.068636"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.578512" elapsed="0.000032"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.591132" elapsed="0.000043"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.604892" elapsed="0.000038"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.605138" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.605322" elapsed="0.000020"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.605912" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:11.605687" elapsed="0.000457"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:11.605662" elapsed="0.000522"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.606418" elapsed="0.000033"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.606669" elapsed="0.000030"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.606913" elapsed="0.000029"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:24:11.605602" elapsed="0.001389"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:24:11.605418" elapsed="0.001612"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.607244" elapsed="0.000029"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:11.607464" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:24:11.607680" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:24:11.493490" elapsed="0.114231"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:11.610134" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:11.609678" elapsed="0.000617">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:11.610537" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:11.609048" elapsed="0.001515"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.610901" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:11.610635" elapsed="0.000323"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.611733" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:11.611196" elapsed="0.000566"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:11.610982" elapsed="0.000815"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:11.610617" elapsed="0.001201"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.614184" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:11.611968" elapsed="0.002243"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:24:11.614262" elapsed="0.000032"/>
</return>
<msg time="2026-04-17T03:24:11.614436" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:11.608304" elapsed="0.006158"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:11.615836" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:11.615447" elapsed="0.000528">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:11.616186" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:11.615088" elapsed="0.001123"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:24:11.616437" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:24:11.616283" elapsed="0.000227"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:11.616265" elapsed="0.000269"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.616679" elapsed="0.000022"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.616847" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:24:11.616911" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:24:11.618993" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:11.614765" elapsed="0.004256"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.620530" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:11.620209" elapsed="0.000370"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:11.621027" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:11.620754" elapsed="0.000318"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:24:11.628148" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:24:11.623139" elapsed="0.007037">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:11.621139" elapsed="0.009227">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.630690" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:11.630459" elapsed="0.000327"/>
</branch>
<status status="FAIL" start="2026-04-17T03:24:11.621121" elapsed="0.009699">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.631625" elapsed="0.000040"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:11.631824" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:24:11.631770" elapsed="0.000114"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:11.631743" elapsed="0.000172"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.632126" elapsed="0.000031"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:24:11.632227" elapsed="0.000021"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:24:11.619366" elapsed="0.013040">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:11.632542" elapsed="0.000024"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:24:11.472150" elapsed="0.160540">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.633085" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:11.632828" elapsed="0.000363"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:11.632804" elapsed="0.000422"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:11.633272" elapsed="0.000021"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:24:11.466259" elapsed="0.167176">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:24:11.461433" elapsed="0.172104">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:24:11.461268" elapsed="0.172359">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:24:11.458792" elapsed="0.174973">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:11.458517" elapsed="0.175328">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:24:11.458500" elapsed="0.175435">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:24:11.634364" elapsed="0.000117"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:11.634040" elapsed="0.000493"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:11.634015" elapsed="0.000553"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:24:11.457196" elapsed="0.177492">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.651852" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:21.651256" elapsed="0.000702"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:21.651220" elapsed="0.000778"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.654227" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:21.653733" elapsed="0.000524"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.654831" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:24:21.654460" elapsed="0.000398"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:24:21.654907" elapsed="0.000301"/>
</return>
<msg time="2026-04-17T03:24:21.655348" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:24:21.653222" elapsed="0.002152"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.656536" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:21.656210" elapsed="0.000352"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:24:21.656609" elapsed="0.000030"/>
</return>
<msg time="2026-04-17T03:24:21.656758" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:24:21.655828" elapsed="0.000955"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.760117" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:21.759366" elapsed="0.000859"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:21.762025" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:21.761753" elapsed="0.000349">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:21.762299" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:21.761225" elapsed="0.001469"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.764424" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:21.763690" elapsed="0.000833"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:24:21.765797" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:24:21.766067" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:24:21.765482" elapsed="0.000682"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.767782" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:21.767149" elapsed="0.000742"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.769514" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:21.769216" elapsed="0.000344"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.770001" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:24:21.769724" elapsed="0.000303"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.770359" elapsed="0.000216"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.770966" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.771149" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:24:21.770222" elapsed="0.000986"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:24:21.770080" elapsed="0.001160"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:24:21.771286" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:24:21.771492" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:24:21.768820" elapsed="0.002721"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:21.768158" elapsed="0.003424"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.771913" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:21.771640" elapsed="0.000353"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:21.768070" elapsed="0.003977"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.774020" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:24:21.773053" elapsed="0.001103"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:24:21.774274" elapsed="0.000068"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:24:21.756863" elapsed="0.018032"/>
</kw>
<msg time="2026-04-17T03:24:21.775182" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:24:21.696553" elapsed="0.078693"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.787851" elapsed="0.000054"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.800975" elapsed="0.000048"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.813456" elapsed="0.000056"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.813766" elapsed="0.000028"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.813960" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.814493" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:21.814310" elapsed="0.000425"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:21.814291" elapsed="0.000481"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.814924" elapsed="0.000023"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.815103" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.815299" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:24:21.814247" elapsed="0.001108"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:24:21.814048" elapsed="0.001352"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.815553" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:21.815635" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:24:21.815791" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:24:21.690215" elapsed="0.125604"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:21.817544" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:21.817072" elapsed="0.000629">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:21.817916" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:21.816619" elapsed="0.001322"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.818287" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:21.818017" elapsed="0.000328"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.819117" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:21.818595" elapsed="0.000549"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:21.818370" elapsed="0.000809"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:21.817997" elapsed="0.001204"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.822046" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:21.819350" elapsed="0.002727"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:24:21.822133" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:24:21.822309" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:21.816240" elapsed="0.006096"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:21.823915" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:21.823474" elapsed="0.000617">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:21.824352" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:21.823080" elapsed="0.001314"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:24:21.824631" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-04-17T03:24:21.824480" elapsed="0.000219"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:21.824456" elapsed="0.000292"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.824915" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.825090" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:24:21.825155" elapsed="0.000014"/>
</return>
<msg time="2026-04-17T03:24:21.827718" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:21.822710" elapsed="0.005046"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.829554" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:21.829217" elapsed="0.000388"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:21.830062" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:21.829773" elapsed="0.000348"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:24:21.836459" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:24:21.832504" elapsed="0.006008">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:21.830207" elapsed="0.008430">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.838952" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:21.838682" elapsed="0.000351"/>
</branch>
<status status="FAIL" start="2026-04-17T03:24:21.830183" elapsed="0.008877">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.839828" elapsed="0.000033"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:21.839987" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:24:21.839943" elapsed="0.000095"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:21.839922" elapsed="0.000208"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.840286" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:24:21.840357" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:24:21.828307" elapsed="0.012230">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:21.840617" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:24:21.666562" elapsed="0.174167">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.841037" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:21.840832" elapsed="0.000280"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:21.840813" elapsed="0.000323"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:21.841168" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:24:21.660578" elapsed="0.180693">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:24:21.655618" elapsed="0.185722">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:24:21.655456" elapsed="0.186029">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:24:21.652679" elapsed="0.188911">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:21.652095" elapsed="0.189554">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:24:21.652064" elapsed="0.189618">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:24:21.841997" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:21.841767" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:21.841748" elapsed="0.000331"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:24:21.650485" elapsed="0.191695">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:24:31.860142" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:31.859561" elapsed="0.000686"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:31.859526" elapsed="0.000759"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.862674" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:31.861993" elapsed="0.000723"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.863478" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:24:31.862980" elapsed="0.000538"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:24:31.863591" elapsed="0.000475"/>
</return>
<msg time="2026-04-17T03:24:31.864290" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:24:31.861353" elapsed="0.002976"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.865451" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:31.865126" elapsed="0.000352"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:24:31.865525" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:24:31.865673" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:24:31.864774" elapsed="0.000924"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.964549" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:31.963603" elapsed="0.001058"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:31.966854" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:31.966245" elapsed="0.000695">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:31.967142" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:31.965715" elapsed="0.001525"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.968999" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:31.968302" elapsed="0.000875"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:24:31.970591" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:24:31.970867" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:24:31.970148" elapsed="0.000816"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.972430" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:31.971999" elapsed="0.000543"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.974065" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:31.973788" elapsed="0.000325"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.974754" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:24:31.974279" elapsed="0.000501"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:31.977303" elapsed="0.000041"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:31.977672" elapsed="0.000037"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:31.977922" elapsed="0.000030"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:24:31.974983" elapsed="0.003021"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:24:31.974836" elapsed="0.003211"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:24:31.978110" elapsed="0.000052"/>
</return>
<msg time="2026-04-17T03:24:31.978706" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:24:31.973365" elapsed="0.005416"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:31.972714" elapsed="0.006129"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:31.979326" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:31.978932" elapsed="0.000531"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:31.972655" elapsed="0.006887"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:24:31.982108" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:24:31.980946" elapsed="0.001307"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:24:31.982449" elapsed="0.000087"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:24:31.960147" elapsed="0.022760"/>
</kw>
<msg time="2026-04-17T03:24:31.983296" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:24:31.901018" elapsed="0.082568"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:31.997405" elapsed="0.000056"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.009345" elapsed="0.000065"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.021195" elapsed="0.000045"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.021555" elapsed="0.000024"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.021741" elapsed="0.000020"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.022220" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:32.022067" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:32.022049" elapsed="0.000380"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.022583" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.022754" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.022919" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:24:32.022007" elapsed="0.000966"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:24:32.021824" elapsed="0.001176"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.023144" elapsed="0.000026"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:32.023229" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:24:32.023396" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:24:31.896763" elapsed="0.126663"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:32.025093" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:32.024647" elapsed="0.000600">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:32.025479" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:32.024220" elapsed="0.001285"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.025849" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:32.025579" elapsed="0.000327"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:32.026659" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:32.026133" elapsed="0.000555"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:32.025931" elapsed="0.000793"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:32.025560" elapsed="0.001185"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:32.029177" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:32.026897" elapsed="0.002307"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:24:32.029256" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:24:32.029432" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:32.023855" elapsed="0.005603"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:32.030938" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:32.030464" elapsed="0.000630">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:32.031310" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:32.030106" elapsed="0.001230"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:24:32.031576" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:24:32.031432" elapsed="0.000230"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:32.031412" elapsed="0.000276"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.031838" elapsed="0.000080"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.032072" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:24:32.032138" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:24:32.096335" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:32.029770" elapsed="0.066636"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:32.098266" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:32.097926" elapsed="0.000392"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:32.098765" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:32.098494" elapsed="0.000318"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:24:32.105827" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:24:32.101013" elapsed="0.006697">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:32.098891" elapsed="0.008941">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.108065" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:32.107878" elapsed="0.000255"/>
</branch>
<status status="FAIL" start="2026-04-17T03:24:32.098866" elapsed="0.009291">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.108753" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:32.108915" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:24:32.108872" elapsed="0.000087"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:32.108852" elapsed="0.000128"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.109157" elapsed="0.000037"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:24:32.109245" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:24:32.096934" elapsed="0.012442">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:32.109491" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:24:31.875318" elapsed="0.234289">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.109906" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:32.109709" elapsed="0.000291"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:32.109690" elapsed="0.000345"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:32.110071" elapsed="0.000016"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:24:31.869462" elapsed="0.240714">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:24:31.864598" elapsed="0.245709">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:24:31.864444" elapsed="0.245927">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:24:31.860767" elapsed="0.249790">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:31.860365" elapsed="0.250250">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:24:31.860342" elapsed="0.250306">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:24:32.110963" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:32.110718" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:32.110700" elapsed="0.000347"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:24:31.858805" elapsed="0.252324">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.126030" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:42.125612" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:42.125583" elapsed="0.000549"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.127811" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:42.127327" elapsed="0.000514"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.128406" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:24:42.128017" elapsed="0.000418"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:24:42.128484" elapsed="0.000041"/>
</return>
<msg time="2026-04-17T03:24:42.128659" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:24:42.126872" elapsed="0.001812"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.130088" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:42.129530" elapsed="0.000587"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:24:42.130169" elapsed="0.000037"/>
</return>
<msg time="2026-04-17T03:24:42.130333" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:24:42.129105" elapsed="0.001254"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.226007" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:42.225278" elapsed="0.000837"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:42.228427" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:42.228126" elapsed="0.000480">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:42.228825" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:42.227181" elapsed="0.001758"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.230675" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:42.229941" elapsed="0.000835"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:24:42.232416" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:24:42.232698" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:24:42.232066" elapsed="0.000732"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.234194" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:42.233775" elapsed="0.000530"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.236020" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:42.235744" elapsed="0.000323"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.236602" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:24:42.236235" elapsed="0.000395"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.236973" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.237185" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.237362" elapsed="0.000201"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:24:42.236836" elapsed="0.000768"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:24:42.236687" elapsed="0.000948"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:24:42.237683" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:24:42.237883" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:24:42.235248" elapsed="0.002686"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:42.234512" elapsed="0.003464"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.238314" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:42.238037" elapsed="0.000382"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:42.234443" elapsed="0.004042"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.240688" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:24:42.239906" elapsed="0.000883"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:24:42.240875" elapsed="0.000055"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:24:42.222423" elapsed="0.018759"/>
</kw>
<msg time="2026-04-17T03:24:42.241463" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:24:42.169949" elapsed="0.071579"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.254915" elapsed="0.000041"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.267517" elapsed="0.000034"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.279776" elapsed="0.000032"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.280007" elapsed="0.000023"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.280196" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.280754" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:42.280593" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:42.280568" elapsed="0.000382"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.281097" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.281265" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.281447" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:24:42.280501" elapsed="0.001002"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:24:42.280282" elapsed="0.001248"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.281677" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:42.281756" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:24:42.281908" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:24:42.165692" elapsed="0.116244"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:42.283619" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:42.283100" elapsed="0.000682">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:42.284019" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:42.282693" elapsed="0.001356"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.284467" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:42.284136" elapsed="0.000401"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.285325" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:42.284764" elapsed="0.000589"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:42.284562" elapsed="0.000846"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:42.284112" elapsed="0.001319"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.287926" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:42.285587" elapsed="0.002368"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:24:42.288008" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:24:42.288168" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:42.282312" elapsed="0.005881"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:42.289753" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:42.289286" elapsed="0.000624">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:42.290236" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:42.288932" elapsed="0.001335"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:24:42.290543" elapsed="0.000031"/>
</return>
<status status="PASS" start="2026-04-17T03:24:42.290356" elapsed="0.000257"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:42.290334" elapsed="0.000307"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.290820" elapsed="0.000025"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.291016" elapsed="0.000024"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:24:42.291087" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:24:42.293170" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:42.288557" elapsed="0.004640"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.294719" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:42.294421" elapsed="0.000347"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:42.295240" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:42.294927" elapsed="0.000359"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:24:42.301844" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:24:42.297427" elapsed="0.006221">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:42.295357" elapsed="0.008388">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.304045" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:42.303780" elapsed="0.000383"/>
</branch>
<status status="FAIL" start="2026-04-17T03:24:42.295338" elapsed="0.008870">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.305051" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:42.305245" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:24:42.305193" elapsed="0.000111"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:42.305166" elapsed="0.000167"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.305624" elapsed="0.000032"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:24:42.305724" elapsed="0.000022"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:24:42.293568" elapsed="0.012313">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:42.305991" elapsed="0.000022"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:24:42.140187" elapsed="0.165941">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.306559" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:42.306263" elapsed="0.000508"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:42.306239" elapsed="0.000582"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:42.306886" elapsed="0.000029"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:24:42.134236" elapsed="0.172820">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:24:42.128892" elapsed="0.178317">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:24:42.128741" elapsed="0.178577">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:24:42.126471" elapsed="0.181012">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:42.126190" elapsed="0.181377">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:24:42.126173" elapsed="0.181439">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:24:42.308060" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:42.307710" elapsed="0.000463"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:42.307686" elapsed="0.000536"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:24:42.125024" elapsed="0.183353">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.325552" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:52.324974" elapsed="0.000685"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:52.324939" elapsed="0.000758"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.328204" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:52.327450" elapsed="0.000800"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.328841" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:24:52.328484" elapsed="0.000385"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:24:52.328918" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:24:52.329094" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:24:52.326760" elapsed="0.002360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.330177" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:52.329869" elapsed="0.000335"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:24:52.330250" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:24:52.330415" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:24:52.329516" elapsed="0.000925"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.426890" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:52.425536" elapsed="0.001540"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:52.429225" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:52.428939" elapsed="0.000366">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:52.429527" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:52.428258" elapsed="0.001370"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.431344" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:52.430644" elapsed="0.000831"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:24:52.432845" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:24:52.433127" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:24:52.432488" elapsed="0.000738"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.434715" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:52.434278" elapsed="0.000576"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.436827" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:52.436116" elapsed="0.000760"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.437339" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:24:52.437047" elapsed="0.000319"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.437727" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.437944" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.438126" elapsed="0.000024"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:24:52.437582" elapsed="0.000605"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:24:52.437436" elapsed="0.000782"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:24:52.438267" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:24:52.438484" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:24:52.435718" elapsed="0.002816"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:52.435031" elapsed="0.003546"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.438974" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:52.438637" elapsed="0.000420"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:52.434971" elapsed="0.004140"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.441036" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:24:52.440089" elapsed="0.001047"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:24:52.441222" elapsed="0.000055"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:24:52.421279" elapsed="0.020268"/>
</kw>
<msg time="2026-04-17T03:24:52.441806" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:24:52.366431" elapsed="0.075433"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.454054" elapsed="0.000030"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.466256" elapsed="0.000030"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.478294" elapsed="0.000030"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.478510" elapsed="0.000024"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.478687" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.479122" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:52.478972" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:52.478957" elapsed="0.000347"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.479476" elapsed="0.000023"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.479647" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.479813" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:24:52.478923" elapsed="0.000944"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:24:52.478775" elapsed="0.001119"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.480041" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:52.480118" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:24:52.480241" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:24:52.362214" elapsed="0.118053"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:52.481825" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:52.481336" elapsed="0.000642">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:52.482188" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:52.480983" elapsed="0.001232"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.482559" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:52.482288" elapsed="0.000331"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.483423" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:24:52.482888" elapsed="0.000564"/>
</kw>
<status status="PASS" start="2026-04-17T03:24:52.482643" elapsed="0.000846"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:52.482269" elapsed="0.001242"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.486138" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:24:52.483665" elapsed="0.002500"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:24:52.486217" elapsed="0.000030"/>
</return>
<msg time="2026-04-17T03:24:52.486371" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:52.480647" elapsed="0.005764"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:24:52.488027" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:24:52.487640" elapsed="0.000528">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:24:52.488459" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:24:52.487260" elapsed="0.001239"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:24:52.488746" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-04-17T03:24:52.488599" elapsed="0.000210"/>
</branch>
<status status="PASS" start="2026-04-17T03:24:52.488573" elapsed="0.000261"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.488983" elapsed="0.000024"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.489158" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:24:52.489226" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:24:52.491199" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:24:52.486781" elapsed="0.004447"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.492859" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:52.492576" elapsed="0.000330"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:24:52.493348" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:24:52.493060" elapsed="0.000369"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:24:52.500653" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:24:52.495683" elapsed="0.009102">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:52.493517" elapsed="0.011471">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.505548" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:52.505065" elapsed="0.000637"/>
</branch>
<status status="FAIL" start="2026-04-17T03:24:52.493496" elapsed="0.012260">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.507273" elapsed="0.000081"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:52.507696" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:24:52.507589" elapsed="0.000216"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:52.507540" elapsed="0.000322"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.508274" elapsed="0.000061"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:24:52.508536" elapsed="0.000042"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:24:52.491604" elapsed="0.017236">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:52.509048" elapsed="0.000046"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:24:52.340224" elapsed="0.169090">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.510204" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:52.509731" elapsed="0.000711"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:52.509685" elapsed="0.000821"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:24:52.510590" elapsed="0.000036"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:24:52.334332" elapsed="0.176557">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:24:52.329325" elapsed="0.181739">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:24:52.329177" elapsed="0.182049">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:24:52.326162" elapsed="0.185293">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:24:52.325779" elapsed="0.185774">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:24:52.325756" elapsed="0.185857">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:24:52.512115" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:24:52.511730" elapsed="0.000474"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:24:52.511701" elapsed="0.000566"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:24:52.324212" elapsed="0.188241">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.527466" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:02.526879" elapsed="0.000696"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:02.526842" elapsed="0.000773"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.530216" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:02.529570" elapsed="0.000686"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.530940" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:25:02.530567" elapsed="0.000401"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:25:02.531017" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:25:02.531193" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:25:02.528886" elapsed="0.002333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.532289" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:02.531982" elapsed="0.000438"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:25:02.532471" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:25:02.532624" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:25:02.531628" elapsed="0.001022"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.622207" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:02.621514" elapsed="0.000823"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:02.624536" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:02.624127" elapsed="0.000491">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:02.624825" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:02.623614" elapsed="0.001310"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.626911" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:02.626197" elapsed="0.000814"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:25:02.628304" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:25:02.628603" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:25:02.627985" elapsed="0.000715"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.630238" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:02.629837" elapsed="0.000508"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.631859" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:02.631582" elapsed="0.000324"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.632345" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:25:02.632068" elapsed="0.000303"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.632726" elapsed="0.000025"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.632943" elapsed="0.000024"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.633118" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:25:02.632586" elapsed="0.000589"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:25:02.632440" elapsed="0.000767"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:25:02.633252" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:25:02.633491" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:25:02.631180" elapsed="0.002362"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:02.630550" elapsed="0.003036"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.633921" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:02.633646" elapsed="0.000355"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:02.630491" elapsed="0.003565"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.635907" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:25:02.635163" elapsed="0.000844"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:25:02.636091" elapsed="0.000053"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:25:02.619200" elapsed="0.017206"/>
</kw>
<msg time="2026-04-17T03:25:02.636726" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:25:02.568839" elapsed="0.067948"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.649477" elapsed="0.000033"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.661527" elapsed="0.000035"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.674916" elapsed="0.000038"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.675165" elapsed="0.000026"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.675353" elapsed="0.000020"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.675857" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:02.675696" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:02.675678" elapsed="0.000368"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.676192" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.676359" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.676549" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:25:02.675634" elapsed="0.000968"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:25:02.675457" elapsed="0.001174"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.676779" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:02.676856" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:25:02.677008" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:25:02.564525" elapsed="0.112511"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:02.678710" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:02.678229" elapsed="0.000637">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:02.679082" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:02.677822" elapsed="0.001286"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.679471" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:02.679184" elapsed="0.000408"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.680339" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:02.679824" elapsed="0.000542"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:02.679620" elapsed="0.000799"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:02.679165" elapsed="0.001277"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.682888" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:02.680599" elapsed="0.002316"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:25:02.682968" elapsed="0.000033"/>
</return>
<msg time="2026-04-17T03:25:02.683128" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:02.677438" elapsed="0.005714"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:02.684561" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:02.684150" elapsed="0.000555">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:02.684922" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:02.683811" elapsed="0.001137"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:25:02.685161" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:25:02.685022" elapsed="0.000198"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:02.685003" elapsed="0.000242"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.685414" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.685589" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:25:02.685655" elapsed="0.000014"/>
</return>
<msg time="2026-04-17T03:25:02.687735" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:02.683476" elapsed="0.004286"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.689238" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:02.688952" elapsed="0.000334"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:02.689798" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:02.689519" elapsed="0.000324"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:25:02.696020" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:25:02.691974" elapsed="0.005768">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:02.689912" elapsed="0.007922">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.698027" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:02.697868" elapsed="0.000225"/>
</branch>
<status status="FAIL" start="2026-04-17T03:25:02.689893" elapsed="0.008225">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.698726" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:02.698862" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:25:02.698824" elapsed="0.000080"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:02.698807" elapsed="0.000118"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.699071" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:25:02.699191" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:25:02.688116" elapsed="0.011188">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:02.699404" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:25:02.542440" elapsed="0.157068">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.699784" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:02.699604" elapsed="0.000253"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:02.699587" elapsed="0.000294"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:02.699913" elapsed="0.000014"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:25:02.536498" elapsed="0.163516">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:25:02.531450" elapsed="0.168633">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:25:02.531280" elapsed="0.168866">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:25:02.528092" elapsed="0.172152">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:02.527700" elapsed="0.172602">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:25:02.527675" elapsed="0.172659">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:25:02.700641" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:02.700418" elapsed="0.000280"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:02.700400" elapsed="0.000321"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:25:02.526064" elapsed="0.174739">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.715335" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:12.714671" elapsed="0.000798"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:12.714629" elapsed="0.000879"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.721742" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:12.717143" elapsed="0.004672"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.722929" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:25:12.722375" elapsed="0.000591"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:25:12.723040" elapsed="0.000079"/>
</return>
<msg time="2026-04-17T03:25:12.723330" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:25:12.716528" elapsed="0.006838"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.725096" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:12.724652" elapsed="0.000479"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:25:12.725194" elapsed="0.000045"/>
</return>
<msg time="2026-04-17T03:25:12.725427" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:25:12.724074" elapsed="0.001389"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.838944" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:12.837327" elapsed="0.001781"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:12.842994" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:12.842138" elapsed="0.000992">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:12.843369" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:12.841207" elapsed="0.002279"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.845904" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:12.844859" elapsed="0.001876"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:25:12.850829" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:25:12.851524" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:25:12.849673" elapsed="0.002074"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.855035" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:12.854325" elapsed="0.000876"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.857700" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:12.857200" elapsed="0.000584"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.858660" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:25:12.858103" elapsed="0.000596"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.859234" elapsed="0.000474"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.860012" elapsed="0.000038"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.860281" elapsed="0.000031"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:25:12.859030" elapsed="0.001335"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:25:12.858792" elapsed="0.001645"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:25:12.860516" elapsed="0.000063"/>
</return>
<msg time="2026-04-17T03:25:12.860819" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:25:12.856587" elapsed="0.004303"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:12.855479" elapsed="0.005471"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.861515" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:12.861064" elapsed="0.000573"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:12.855363" elapsed="0.006473"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.864515" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:25:12.863307" elapsed="0.001349"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:25:12.864776" elapsed="0.000075"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:25:12.833413" elapsed="0.031791"/>
</kw>
<msg time="2026-04-17T03:25:12.865595" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:25:12.777125" elapsed="0.088559"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.878670" elapsed="0.000033"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.890860" elapsed="0.000038"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.903059" elapsed="0.000043"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.903320" elapsed="0.000024"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.903532" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.904051" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:12.903889" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:12.903868" elapsed="0.000376"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.904427" elapsed="0.000024"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.904647" elapsed="0.000027"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.904862" elapsed="0.000026"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:25:12.903817" elapsed="0.001113"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:25:12.903627" elapsed="0.001340"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.905125" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:12.905207" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:25:12.905400" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:25:12.772425" elapsed="0.133006"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:12.907361" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:12.906845" elapsed="0.000707">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:12.907777" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:12.906358" elapsed="0.001446"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.908166" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:12.907881" elapsed="0.000345"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.909001" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:12.908477" elapsed="0.000553"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:12.908251" elapsed="0.000815"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:12.907861" elapsed="0.001227"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.911607" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:12.909243" elapsed="0.002392"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:25:12.911689" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:25:12.911853" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:12.905954" elapsed="0.005925"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:12.913295" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:12.912890" elapsed="0.000573">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:12.913680" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:12.912547" elapsed="0.001158"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:25:12.913962" elapsed="0.000027"/>
</return>
<status status="PASS" start="2026-04-17T03:25:12.913790" elapsed="0.000233"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:12.913771" elapsed="0.000278"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.914233" elapsed="0.000025"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.914436" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:25:12.914504" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:25:12.916698" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:12.912194" elapsed="0.004531"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.918358" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:12.918025" elapsed="0.000406"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:12.918924" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:12.918617" elapsed="0.000360"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:25:12.925774" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:25:12.921234" elapsed="0.006328">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:12.919059" elapsed="0.008598">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.927873" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:12.927695" elapsed="0.000244"/>
</branch>
<status status="FAIL" start="2026-04-17T03:25:12.919036" elapsed="0.008989">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.928637" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:12.928784" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:25:12.928743" elapsed="0.000086"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:12.928725" elapsed="0.000126"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.929000" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:25:12.929069" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:25:12.917084" elapsed="0.012110">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:12.929275" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:25:12.740101" elapsed="0.189277">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.929684" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:12.929496" elapsed="0.000261"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:12.929478" elapsed="0.000303"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:12.929815" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:25:12.731114" elapsed="0.198826">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:25:12.723725" elapsed="0.206287">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:25:12.723487" elapsed="0.206594">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:25:12.715938" elapsed="0.214249">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:12.715589" elapsed="0.214655">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:25:12.715566" elapsed="0.214710">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:25:12.930595" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:12.930347" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:12.930330" elapsed="0.000346"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:25:12.713713" elapsed="0.217047">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:25:22.948770" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:22.948197" elapsed="0.000684"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:22.948159" elapsed="0.000762"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:22.951543" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:22.950795" elapsed="0.000797"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:25:22.952446" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:25:22.951939" elapsed="0.000550"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:25:22.952558" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:25:22.952731" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:25:22.950023" elapsed="0.002733"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:22.954157" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:22.953838" elapsed="0.000347"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:25:22.954233" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:25:22.954405" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:25:22.953470" elapsed="0.000963"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.045780" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:23.045052" elapsed="0.000838"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:23.048143" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:23.047837" elapsed="0.000384">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:23.048446" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:23.047291" elapsed="0.001256"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.050222" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:23.049550" elapsed="0.000773"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:25:23.051934" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:25:23.052216" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:25:23.051609" elapsed="0.000705"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.053714" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:23.053284" elapsed="0.000579"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.055643" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:23.055345" elapsed="0.000347"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.056157" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:25:23.055856" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.056591" elapsed="0.000024"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.056804" elapsed="0.000027"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.056983" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:25:23.056436" elapsed="0.000688"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:25:23.056239" elapsed="0.000920"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:25:23.057210" elapsed="0.000036"/>
</return>
<msg time="2026-04-17T03:25:23.057426" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:25:23.054945" elapsed="0.002533"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:23.054065" elapsed="0.003455"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.057855" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:23.057580" elapsed="0.000358"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:23.054003" elapsed="0.003991"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.060188" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:25:23.059013" elapsed="0.001278"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:25:23.060378" elapsed="0.000075"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:25:23.042296" elapsed="0.018442"/>
</kw>
<msg time="2026-04-17T03:25:23.061067" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:25:22.990056" elapsed="0.071090"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.073787" elapsed="0.000040"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.085746" elapsed="0.000030"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.099097" elapsed="0.000078"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.099458" elapsed="0.000028"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.099653" elapsed="0.000023"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.100169" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:23.100013" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:23.099995" elapsed="0.000366"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.100537" elapsed="0.000023"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.100714" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.100882" elapsed="0.000022"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:25:23.099951" elapsed="0.000996"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:25:23.099742" elapsed="0.001234"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.101126" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:23.101291" elapsed="0.000021"/>
</return>
<msg time="2026-04-17T03:25:23.101480" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:25:22.985793" elapsed="0.115721"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:23.103224" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:23.102748" elapsed="0.000651">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:23.103622" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:23.102303" elapsed="0.001346"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.104005" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:23.103727" elapsed="0.000338"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.104844" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:23.104303" elapsed="0.000569"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:23.104089" elapsed="0.000819"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:23.103706" elapsed="0.001225"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.107586" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:23.105087" elapsed="0.002535"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:25:23.107692" elapsed="0.000046"/>
</return>
<msg time="2026-04-17T03:25:23.107884" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:23.101934" elapsed="0.005976"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:23.109680" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:23.109210" elapsed="0.000625">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:23.110048" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:23.108829" elapsed="0.001244"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:25:23.110307" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:25:23.110156" elapsed="0.000210"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:23.110134" elapsed="0.000310"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.110599" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.110772" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:25:23.110836" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:25:23.113033" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:23.108457" elapsed="0.004603"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.114630" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:23.114285" elapsed="0.000394"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:23.115104" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:23.114834" elapsed="0.000315"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:25:23.122296" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:25:23.117580" elapsed="0.006496">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:23.115216" elapsed="0.009015">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.124447" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:23.124268" elapsed="0.000247"/>
</branch>
<status status="FAIL" start="2026-04-17T03:25:23.115197" elapsed="0.009343">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.125145" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:23.125289" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:25:23.125250" elapsed="0.000083"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:23.125231" elapsed="0.000125"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.125542" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:25:23.125617" elapsed="0.000018"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:25:23.113430" elapsed="0.012306">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:23.125817" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:25:22.964100" elapsed="0.161821">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.126244" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:23.126051" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:23.126025" elapsed="0.000340"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:23.126422" elapsed="0.000016"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:25:22.958247" elapsed="0.168282">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:25:22.952964" elapsed="0.173646">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:25:22.952815" elapsed="0.173860">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:25:22.949432" elapsed="0.177344">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:22.949007" elapsed="0.177828">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:25:22.948983" elapsed="0.177917">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:25:23.127206" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:23.126976" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:23.126958" elapsed="0.000330"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:25:22.947310" elapsed="0.180061">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.144220" elapsed="0.000040"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:33.143667" elapsed="0.000658"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:33.143631" elapsed="0.000733"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.146281" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:33.145794" elapsed="0.000516"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.146817" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:25:33.146496" elapsed="0.000355"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:25:33.146903" elapsed="0.000328"/>
</return>
<msg time="2026-04-17T03:25:33.147375" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:25:33.145344" elapsed="0.002074"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.148510" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:33.148183" elapsed="0.000354"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:25:33.148583" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:25:33.148755" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:25:33.147808" elapsed="0.000973"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.239913" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:33.238955" elapsed="0.001065"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:33.241844" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:33.241573" elapsed="0.000349">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:33.242116" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:33.241040" elapsed="0.001172"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.244228" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:33.243252" elapsed="0.001073"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:25:33.245620" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:25:33.245922" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:25:33.245288" elapsed="0.000730"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.247374" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:33.246974" elapsed="0.000701"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.249246" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:33.248974" elapsed="0.000319"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.249747" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:25:33.249471" elapsed="0.000303"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.250114" elapsed="0.000245"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.250571" elapsed="0.000025"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.250749" elapsed="0.000021"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:25:33.249973" elapsed="0.000833"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:25:33.249828" elapsed="0.001010"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:25:33.250885" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:25:33.251079" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:25:33.248585" elapsed="0.002542"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:33.247921" elapsed="0.003248"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.251688" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:33.251227" elapsed="0.000543"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:33.247861" elapsed="0.003964"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.253573" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:25:33.252832" elapsed="0.000838"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:25:33.253755" elapsed="0.000053"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:25:33.236570" elapsed="0.017482"/>
</kw>
<msg time="2026-04-17T03:25:33.254311" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:25:33.185837" elapsed="0.068531"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.266955" elapsed="0.000059"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.279469" elapsed="0.000070"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.291937" elapsed="0.000039"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.292199" elapsed="0.000028"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.292432" elapsed="0.000024"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.292964" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:33.292795" elapsed="0.000453"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:33.292774" elapsed="0.000511"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.293469" elapsed="0.000024"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.293645" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.293813" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:25:33.292720" elapsed="0.001146"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:25:33.292528" elapsed="0.001368"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.294048" elapsed="0.000022"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:33.294129" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:25:33.294294" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:25:33.181611" elapsed="0.112712"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:33.296029" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:33.295567" elapsed="0.000632">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:33.296466" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:33.295133" elapsed="0.001360"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.296851" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:33.296574" elapsed="0.000335"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.297675" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:33.297143" elapsed="0.000561"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:33.296933" elapsed="0.000807"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:33.296552" elapsed="0.001209"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.300258" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:33.297913" elapsed="0.002372"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:25:33.300404" elapsed="0.000038"/>
</return>
<msg time="2026-04-17T03:25:33.300574" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:33.294757" elapsed="0.005842"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:33.302013" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:33.301612" elapsed="0.000546">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:33.302402" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:33.301250" elapsed="0.001182"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:25:33.302650" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:25:33.302508" elapsed="0.000202"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:33.302488" elapsed="0.000247"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.302883" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.303055" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:25:33.303121" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:25:33.305306" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:33.300914" elapsed="0.004420"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.307168" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:33.306857" elapsed="0.000362"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:33.307668" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:33.307375" elapsed="0.000339"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:25:33.313952" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:25:33.309859" elapsed="0.006139">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:33.307786" elapsed="0.008340">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.316435" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:33.316176" elapsed="0.000331"/>
</branch>
<status status="FAIL" start="2026-04-17T03:25:33.307765" elapsed="0.008767">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.317103" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:33.317246" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:25:33.317204" elapsed="0.000086"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:33.317186" elapsed="0.000125"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.317472" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:25:33.317545" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:25:33.305785" elapsed="0.011874">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:33.317740" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:25:33.158798" elapsed="0.159043">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.318119" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:33.317935" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:33.317918" elapsed="0.000297"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:33.318248" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:25:33.152647" elapsed="0.165703">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:25:33.147631" elapsed="0.170838">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:25:33.147479" elapsed="0.171111">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:25:33.144914" elapsed="0.173781">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:33.144474" elapsed="0.174276">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:25:33.144449" elapsed="0.174334">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:25:33.319081" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:33.318853" elapsed="0.000285"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:33.318835" elapsed="0.000327"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:25:33.142864" elapsed="0.176381">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.335042" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:43.334428" elapsed="0.000758"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:43.334367" elapsed="0.000867"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.338158" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:43.337333" elapsed="0.000869"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.339113" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:25:43.338465" elapsed="0.000679"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:25:43.339199" elapsed="0.000041"/>
</return>
<msg time="2026-04-17T03:25:43.339381" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:25:43.336679" elapsed="0.002750"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.342027" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:43.341687" elapsed="0.000372"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:25:43.342108" elapsed="0.000032"/>
</return>
<msg time="2026-04-17T03:25:43.342267" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:25:43.339845" elapsed="0.002447"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.440670" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:43.439962" elapsed="0.000821"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:43.442997" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:43.442352" elapsed="0.000725">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:43.443275" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:43.441843" elapsed="0.001527"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.445070" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:43.444403" elapsed="0.000843"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:25:43.446790" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:25:43.447057" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:25:43.446227" elapsed="0.000927"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.448564" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:43.448144" elapsed="0.000528"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.450231" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:43.449951" elapsed="0.000325"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.450998" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:25:43.450489" elapsed="0.000536"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.451364" elapsed="0.000197"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.451754" elapsed="0.000024"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.451931" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:25:43.451226" elapsed="0.000764"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:25:43.451080" elapsed="0.000943"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:25:43.452070" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:25:43.452307" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:25:43.449517" elapsed="0.002842"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:43.448837" elapsed="0.003580"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.452749" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:43.452477" elapsed="0.000351"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:43.448780" elapsed="0.004102"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.454839" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:25:43.453875" elapsed="0.001063"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:25:43.455023" elapsed="0.000052"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:25:43.437403" elapsed="0.017916"/>
</kw>
<msg time="2026-04-17T03:25:43.455592" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:25:43.380251" elapsed="0.075401"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.467794" elapsed="0.000033"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.479938" elapsed="0.000031"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.492119" elapsed="0.000045"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.492489" elapsed="0.000027"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.492681" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.493169" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:43.493015" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:43.492996" elapsed="0.000408"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.493553" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.493721" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.493888" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:25:43.492951" elapsed="0.000991"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:25:43.492767" elapsed="0.001204"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.494119" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:43.494199" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:25:43.494352" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:25:43.375847" elapsed="0.118532"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:43.496042" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:43.495596" elapsed="0.000600">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:43.496424" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:43.495170" elapsed="0.001282"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.496818" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:43.496525" elapsed="0.000360"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.497824" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:43.497142" elapsed="0.000710"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:43.496911" elapsed="0.000976"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:43.496506" elapsed="0.001402"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.500297" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:43.498062" elapsed="0.002263"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:25:43.500376" elapsed="0.000052"/>
</return>
<msg time="2026-04-17T03:25:43.500557" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:43.494807" elapsed="0.005775"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:43.502059" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:43.501667" elapsed="0.000537">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:43.502441" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:43.501283" elapsed="0.001185"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:25:43.502684" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:25:43.502543" elapsed="0.000200"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:43.502524" elapsed="0.000244"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.502914" elapsed="0.000078"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.503148" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:25:43.503215" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:25:43.505501" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:43.500893" elapsed="0.004637"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.507118" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:43.506828" elapsed="0.000340"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:43.507608" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:43.507322" elapsed="0.000331"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:25:43.514742" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:25:43.509770" elapsed="0.007519">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:43.507723" elapsed="0.009726">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.517747" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:43.517507" elapsed="0.000337"/>
</branch>
<status status="FAIL" start="2026-04-17T03:25:43.507703" elapsed="0.010176">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.518737" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:43.518943" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:25:43.518886" elapsed="0.000120"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:43.518859" elapsed="0.000179"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.519247" elapsed="0.000033"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:25:43.519353" elapsed="0.000065"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:25:43.505905" elapsed="0.013693">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:43.519716" elapsed="0.000024"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:25:43.352984" elapsed="0.166880">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.520271" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:43.520004" elapsed="0.000373"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:43.519979" elapsed="0.000458"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:43.520485" elapsed="0.000022"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:25:43.346398" elapsed="0.174236">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:25:43.339645" elapsed="0.181158">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:25:43.339491" elapsed="0.181412">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:25:43.335821" elapsed="0.185228">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:43.335333" elapsed="0.186016">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:25:43.335307" elapsed="0.186114">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:25:43.521857" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:43.521527" elapsed="0.000414"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:43.521502" elapsed="0.000474"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:25:43.333585" elapsed="0.188511">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.538191" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:53.537790" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:53.537763" elapsed="0.000529"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.539957" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:53.539499" elapsed="0.000489"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.542591" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:25:53.540154" elapsed="0.002468"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:25:53.542675" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:25:53.542852" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:25:53.539042" elapsed="0.003835"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.544029" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:53.543709" elapsed="0.000348"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:25:53.544103" elapsed="0.000030"/>
</return>
<msg time="2026-04-17T03:25:53.544254" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:25:53.543274" elapsed="0.001006"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.636860" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:53.636135" elapsed="0.000831"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:53.638792" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:53.638510" elapsed="0.000463">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:53.639181" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:53.637975" elapsed="0.001302"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.641156" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:53.640461" elapsed="0.000796"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:25:53.642587" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:25:53.642867" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:25:53.642240" elapsed="0.000790"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.644608" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:53.644163" elapsed="0.000556"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.646235" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:53.645955" elapsed="0.000330"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.646748" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:25:53.646469" elapsed="0.000305"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.647126" elapsed="0.000024"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.647342" elapsed="0.000025"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.647701" elapsed="0.000278"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:25:53.646972" elapsed="0.001050"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:25:53.646828" elapsed="0.001226"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:25:53.648102" elapsed="0.000038"/>
</return>
<msg time="2026-04-17T03:25:53.648308" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:25:53.645549" elapsed="0.002809"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:53.644884" elapsed="0.003520"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.648757" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:53.648479" elapsed="0.000359"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:53.644825" elapsed="0.004067"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.650649" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:25:53.649856" elapsed="0.000894"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:25:53.650837" elapsed="0.000056"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:25:53.633358" elapsed="0.017789"/>
</kw>
<msg time="2026-04-17T03:25:53.651704" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:25:53.580699" elapsed="0.071070"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.664144" elapsed="0.000054"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.676601" elapsed="0.000052"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.689086" elapsed="0.000056"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.689372" elapsed="0.000043"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.689582" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.690081" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:53.689929" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:53.689909" elapsed="0.000359"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.690449" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.690622" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.690790" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:25:53.689868" elapsed="0.000976"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:25:53.689667" elapsed="0.001206"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.691018" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:53.691098" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:25:53.691252" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:25:53.576336" elapsed="0.114945"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:53.692962" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:53.692478" elapsed="0.000640">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:53.693334" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:53.692063" elapsed="0.001298"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.693729" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:53.693458" elapsed="0.000329"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.694551" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:25:53.694014" elapsed="0.000566"/>
</kw>
<status status="PASS" start="2026-04-17T03:25:53.693813" elapsed="0.000805"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:53.693435" elapsed="0.001205"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.697182" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:25:53.694794" elapsed="0.002419"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:25:53.697273" elapsed="0.000037"/>
</return>
<msg time="2026-04-17T03:25:53.697462" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:53.691700" elapsed="0.005788"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:25:53.699115" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:25:53.698658" elapsed="0.000618">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:25:53.699591" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:25:53.698236" elapsed="0.001382"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:25:53.699851" elapsed="0.000028"/>
</return>
<status status="PASS" start="2026-04-17T03:25:53.699699" elapsed="0.000215"/>
</branch>
<status status="PASS" start="2026-04-17T03:25:53.699677" elapsed="0.000262"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.700091" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.700264" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:25:53.700332" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:25:53.702552" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:25:53.697828" elapsed="0.004754"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.704247" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:53.703931" elapsed="0.000367"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:25:53.704742" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:25:53.704471" elapsed="0.000316"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:25:53.710977" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:25:53.707015" elapsed="0.005722">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:53.704860" elapsed="0.007986">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.713075" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:53.712888" elapsed="0.000254"/>
</branch>
<status status="FAIL" start="2026-04-17T03:25:53.704839" elapsed="0.008329">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.713802" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:53.713949" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:25:53.713907" elapsed="0.000087"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:53.713887" elapsed="0.000129"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.714163" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:25:53.714233" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:25:53.702978" elapsed="0.011371">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:53.714479" elapsed="0.000019"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:25:53.554225" elapsed="0.160360">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.714876" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:53.714684" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:53.714665" elapsed="0.000373"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:25:53.715072" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:25:53.548154" elapsed="0.167023">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:25:53.543083" elapsed="0.172164">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:25:53.542935" elapsed="0.172374">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:25:53.538640" elapsed="0.176786">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:25:53.538350" elapsed="0.177136">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:25:53.538333" elapsed="0.177186">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:25:53.715817" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:25:53.715588" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:25:53.715570" elapsed="0.000333"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:25:53.537220" elapsed="0.178766">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.731349" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:03.730952" elapsed="0.000495"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:03.730922" elapsed="0.000557"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.733233" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:03.732668" elapsed="0.000595"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.733794" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:26:03.733465" elapsed="0.000356"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:26:03.733871" elapsed="0.000040"/>
</return>
<msg time="2026-04-17T03:26:03.734044" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:26:03.732205" elapsed="0.001865"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.735477" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:03.735148" elapsed="0.000357"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:26:03.735553" elapsed="0.000028"/>
</return>
<msg time="2026-04-17T03:26:03.735703" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:26:03.734785" elapsed="0.000944"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.834410" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:03.833647" elapsed="0.000874"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:03.836359" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:03.836085" elapsed="0.000557">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:03.836846" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:03.835570" elapsed="0.001374"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.838675" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:03.837947" elapsed="0.000828"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:26:03.840097" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:26:03.840377" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:26:03.839772" elapsed="0.000920"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.842119" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:03.841669" elapsed="0.000560"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.843753" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:03.843471" elapsed="0.000329"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.844244" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:26:03.843966" elapsed="0.000304"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.844809" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.845021" elapsed="0.000025"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.845200" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:26:03.844666" elapsed="0.000593"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:26:03.844324" elapsed="0.000968"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:26:03.845341" elapsed="0.000037"/>
</return>
<msg time="2026-04-17T03:26:03.845560" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:26:03.843057" elapsed="0.002553"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:03.842419" elapsed="0.003233"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.845989" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:03.845711" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:03.842339" elapsed="0.003824"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.848157" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:26:03.847146" elapsed="0.001134"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:26:03.848376" elapsed="0.000100"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:26:03.830916" elapsed="0.017814"/>
</kw>
<msg time="2026-04-17T03:26:03.849001" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:26:03.774865" elapsed="0.074194"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.862008" elapsed="0.000033"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.875842" elapsed="0.000106"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.888478" elapsed="0.000032"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.888724" elapsed="0.000027"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.888922" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.889456" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:03.889264" elapsed="0.000358"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:03.889237" elapsed="0.000417"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.889810" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.890143" elapsed="0.000041"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.890336" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:26:03.889188" elapsed="0.001219"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:26:03.889009" elapsed="0.001431"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.890615" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:03.890695" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:26:03.890867" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:26:03.770610" elapsed="0.120290"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:03.892777" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:03.892267" elapsed="0.000675">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:03.893163" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:03.891823" elapsed="0.001366"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.893558" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:03.893262" elapsed="0.000355"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.894357" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:03.893844" elapsed="0.000545"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:03.893642" elapsed="0.000803"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:03.893243" elapsed="0.001228"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.896941" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:03.894680" elapsed="0.002288"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:26:03.897204" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:26:03.897370" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:03.891439" elapsed="0.005971"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:03.898956" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:03.898557" elapsed="0.000545">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:03.899326" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:03.898149" elapsed="0.001202"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:26:03.899587" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:26:03.899445" elapsed="0.000203"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:03.899424" elapsed="0.000248"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.899820" elapsed="0.000024"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.899996" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:26:03.900062" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:26:03.902209" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:03.897815" elapsed="0.004420"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.903804" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:03.903509" elapsed="0.000344"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:03.904280" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:03.904009" elapsed="0.000316"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:26:03.909981" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:26:03.906468" elapsed="0.005366">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:03.904448" elapsed="0.007486">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.912154" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:03.911970" elapsed="0.000253"/>
</branch>
<status status="FAIL" start="2026-04-17T03:26:03.904376" elapsed="0.007871">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.912825" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:03.912966" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:26:03.912927" elapsed="0.000081"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:03.912908" elapsed="0.000122"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.913175" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:26:03.913245" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:26:03.902657" elapsed="0.010702">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:03.913458" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:26:03.747586" elapsed="0.165975">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.913910" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:03.913724" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:03.913705" elapsed="0.000303"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:03.914041" elapsed="0.000014"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:26:03.739586" elapsed="0.174559">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:26:03.734280" elapsed="0.179934">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:26:03.734130" elapsed="0.180147">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:26:03.731803" elapsed="0.182575">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:03.731537" elapsed="0.182974">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:26:03.731522" elapsed="0.183023">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:26:03.914870" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:03.914615" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:03.914597" elapsed="0.000356"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:26:03.730358" elapsed="0.184678">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:26:13.930966" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:13.930597" elapsed="0.000447"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:13.930568" elapsed="0.000505"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:13.932834" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:13.932243" elapsed="0.000623"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:26:13.933439" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:26:13.933041" elapsed="0.000429"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:26:13.933527" elapsed="0.000356"/>
</return>
<msg time="2026-04-17T03:26:13.934052" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:26:13.931813" elapsed="0.002269"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:13.935409" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:13.935045" elapsed="0.000466"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:26:13.935563" elapsed="0.000033"/>
</return>
<msg time="2026-04-17T03:26:13.935730" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:26:13.934595" elapsed="0.001161"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.029095" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:14.028404" elapsed="0.000798"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:14.031483" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:14.031097" elapsed="0.000494">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:14.031880" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:14.030222" elapsed="0.001796"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.034267" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:14.033527" elapsed="0.000839"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:26:14.035877" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:26:14.036156" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:26:14.035330" elapsed="0.000922"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.037637" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:14.037221" elapsed="0.000524"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.039171" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:14.038901" elapsed="0.000317"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.039671" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:26:14.039379" elapsed="0.000319"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.040027" elapsed="0.000022"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.040612" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.040804" elapsed="0.000079"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:26:14.039891" elapsed="0.001040"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:26:14.039750" elapsed="0.001216"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:26:14.041013" elapsed="0.000036"/>
</return>
<msg time="2026-04-17T03:26:14.041223" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:26:14.038519" elapsed="0.002754"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:14.037905" elapsed="0.003410"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.041734" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:14.041374" elapsed="0.000494"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:14.037847" elapsed="0.004098"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.044316" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:26:14.043301" elapsed="0.001175"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:26:14.044596" elapsed="0.000074"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:26:14.026160" elapsed="0.018874"/>
</kw>
<msg time="2026-04-17T03:26:14.045514" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:26:13.971915" elapsed="0.073679"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.059184" elapsed="0.000031"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.072668" elapsed="0.000031"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.084584" elapsed="0.000030"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.084787" elapsed="0.000023"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.085010" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.085460" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:14.085284" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:14.085268" elapsed="0.000531"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.085948" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.086117" elapsed="0.000019"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.086282" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:26:14.085236" elapsed="0.001099"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:26:14.085088" elapsed="0.001273"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.086528" elapsed="0.000020"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:14.086604" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:26:14.086725" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:26:13.967791" elapsed="0.118960"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:14.088217" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:14.087814" elapsed="0.000550">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:14.088595" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:14.087463" elapsed="0.001158"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.088995" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:14.088695" elapsed="0.000399"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.089900" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:14.089361" elapsed="0.000566"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:14.089133" elapsed="0.000832"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:14.088677" elapsed="0.001310"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.092416" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:14.090140" elapsed="0.002304"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:26:14.092496" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:26:14.092651" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:14.087113" elapsed="0.005563"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:14.094067" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:14.093675" elapsed="0.000536">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:14.094490" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:14.093316" elapsed="0.001201"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:26:14.094733" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:26:14.094593" elapsed="0.000199"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:14.094574" elapsed="0.000242"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.094962" elapsed="0.000022"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.095131" elapsed="0.000020"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:26:14.095196" elapsed="0.000014"/>
</return>
<msg time="2026-04-17T03:26:14.097307" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:14.092989" elapsed="0.004345"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.098873" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:14.098589" elapsed="0.000330"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:14.099342" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:14.099073" elapsed="0.000331"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:26:14.105597" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:26:14.101521" elapsed="0.005816">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:14.099473" elapsed="0.008142">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.107812" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:14.107650" elapsed="0.000228"/>
</branch>
<status status="FAIL" start="2026-04-17T03:26:14.099455" elapsed="0.008447">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.108449" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:14.108587" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:26:14.108549" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:14.108532" elapsed="0.000118"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.108795" elapsed="0.000021"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:26:14.108903" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:26:14.097699" elapsed="0.011348">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:14.109129" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:26:13.945768" elapsed="0.163464">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.109626" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:14.109368" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:14.109341" elapsed="0.000387"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:14.109761" elapsed="0.000014"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:26:13.939649" elapsed="0.170218">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:26:13.934349" elapsed="0.175586">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:26:13.934151" elapsed="0.175845">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:26:13.931411" elapsed="0.178690">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:13.931132" elapsed="0.179028">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:26:13.931115" elapsed="0.179078">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:26:14.110505" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:14.110262" elapsed="0.000301"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:14.110245" elapsed="0.000341"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:26:13.930000" elapsed="0.180668">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.127756" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:24.127170" elapsed="0.000688"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:24.127130" elapsed="0.000767"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.130002" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:24.129459" elapsed="0.000582"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.130683" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:26:24.130331" elapsed="0.000380"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:26:24.130761" elapsed="0.000324"/>
</return>
<msg time="2026-04-17T03:26:24.131232" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:26:24.128871" elapsed="0.002388"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.132399" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:24.132066" elapsed="0.000363"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:26:24.132494" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:26:24.132653" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:26:24.131670" elapsed="0.001008"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.232056" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:24.231279" elapsed="0.000908"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:24.234275" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:24.233942" elapsed="0.000418">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:24.234967" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:24.233319" elapsed="0.001751"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.238940" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:24.236189" elapsed="0.002973"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:26:24.240586" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:26:24.240878" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:26:24.240200" elapsed="0.000779"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.242668" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:24.242218" elapsed="0.000563"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.244361" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:24.244074" elapsed="0.000377"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.245174" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:26:24.244630" elapsed="0.000572"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.245670" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.245891" elapsed="0.000025"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.246074" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:26:24.245526" elapsed="0.000609"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:26:24.245257" elapsed="0.000930"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:26:24.246239" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:26:24.246458" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:26:24.243657" elapsed="0.002852"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:24.242954" elapsed="0.003597"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.246967" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:24.246671" elapsed="0.000380"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:24.242893" elapsed="0.004282"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.249568" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:26:24.248210" elapsed="0.001466"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:26:24.249770" elapsed="0.000061"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:26:24.228034" elapsed="0.022057"/>
</kw>
<msg time="2026-04-17T03:26:24.250439" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:26:24.171785" elapsed="0.078721"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.263434" elapsed="0.000060"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.276012" elapsed="0.000042"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.288463" elapsed="0.000050"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.288745" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.288937" elapsed="0.000022"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.289498" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:24.289294" elapsed="0.000375"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:24.289275" elapsed="0.000425"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.289850" elapsed="0.000023"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.290022" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.290220" elapsed="0.000024"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:26:24.289227" elapsed="0.001054"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:26:24.289025" elapsed="0.001288"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.290490" elapsed="0.000023"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:24.290575" elapsed="0.000019"/>
</return>
<msg time="2026-04-17T03:26:24.290745" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:26:24.166934" elapsed="0.123839"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:24.292710" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:24.292228" elapsed="0.000643">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:24.293088" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:24.291807" elapsed="0.001321"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.293561" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:24.293231" elapsed="0.000394"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.294457" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:24.293860" elapsed="0.000626"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:24.293650" elapsed="0.000873"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:24.293208" elapsed="0.001336"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.296969" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:24.294701" elapsed="0.002296"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:26:24.297051" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:26:24.297217" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:24.291433" elapsed="0.005808"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:24.298736" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:24.298295" elapsed="0.000592">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:24.299118" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:24.297929" elapsed="0.001223"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:26:24.299426" elapsed="0.000034"/>
</return>
<status status="PASS" start="2026-04-17T03:26:24.299241" elapsed="0.000260"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:24.299218" elapsed="0.000312"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.299715" elapsed="0.000026"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.299923" elapsed="0.000024"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:26:24.300000" elapsed="0.000020"/>
</return>
<msg time="2026-04-17T03:26:24.302676" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:24.297591" elapsed="0.005114"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.304214" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:24.303923" elapsed="0.000339"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:24.304733" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:24.304461" elapsed="0.000316"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:26:24.310787" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:26:24.306864" elapsed="0.005635">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:24.304847" elapsed="0.007744">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.312795" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:24.312626" elapsed="0.000236"/>
</branch>
<status status="FAIL" start="2026-04-17T03:26:24.304827" elapsed="0.008116">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.313600" elapsed="0.000036"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:24.313761" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:26:24.313718" elapsed="0.000085"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:24.313698" elapsed="0.000127"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.313974" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:26:24.314046" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:26:24.303074" elapsed="0.011087">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:24.314276" elapsed="0.000017"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:26:24.143018" elapsed="0.171360">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.314677" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:24.314492" elapsed="0.000258"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:24.314474" elapsed="0.000299"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:24.314805" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:26:24.136669" elapsed="0.178237">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:26:24.131489" elapsed="0.183485">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:26:24.131317" elapsed="0.183719">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:26:24.128332" elapsed="0.186807">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:24.127978" elapsed="0.187217">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:26:24.127954" elapsed="0.187273">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:26:24.315534" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:24.315295" elapsed="0.000297"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:24.315278" elapsed="0.000338"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:26:24.126082" elapsed="0.189614">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.332434" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:34.331863" elapsed="0.000679"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:34.331828" elapsed="0.000753"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.335151" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:34.334299" elapsed="0.000904"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.338216" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:26:34.335584" elapsed="0.002663"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:26:34.338300" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:26:34.338498" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:26:34.333667" elapsed="0.004858"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.339684" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:34.339328" elapsed="0.000384"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:26:34.339758" elapsed="0.000030"/>
</return>
<msg time="2026-04-17T03:26:34.339911" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:26:34.338917" elapsed="0.001025"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.432969" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:34.432037" elapsed="0.001037"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:34.434914" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:34.434620" elapsed="0.000375">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:34.435193" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:34.434089" elapsed="0.001201"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.437257" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:34.436312" elapsed="0.001111"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:26:34.438752" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:26:34.439030" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:26:34.438426" elapsed="0.000705"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.440582" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:34.440124" elapsed="0.000569"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.442257" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:34.441933" elapsed="0.000380"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.442950" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:26:34.442666" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.443311" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.443534" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.443756" elapsed="0.000248"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:26:34.443174" elapsed="0.000976"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:26:34.443030" elapsed="0.001156"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:26:34.444236" elapsed="0.000035"/>
</return>
<msg time="2026-04-17T03:26:34.444801" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:26:34.441551" elapsed="0.003302"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:34.440858" elapsed="0.004037"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.445227" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:34.444954" elapsed="0.000354"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:34.440800" elapsed="0.004562"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.447079" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:26:34.446333" elapsed="0.000843"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:26:34.447262" elapsed="0.000052"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:26:34.429758" elapsed="0.017850"/>
</kw>
<msg time="2026-04-17T03:26:34.447870" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:26:34.378426" elapsed="0.069502"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.460426" elapsed="0.000032"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.472461" elapsed="0.000030"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.485402" elapsed="0.000030"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.485611" elapsed="0.000022"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.485790" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.486235" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:34.486083" elapsed="0.000329"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:34.486065" elapsed="0.000376"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.486593" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.486762" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.486926" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:26:34.486027" elapsed="0.000953"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:26:34.485870" elapsed="0.001137"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.487153" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:34.487288" elapsed="0.000018"/>
</return>
<msg time="2026-04-17T03:26:34.487438" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:26:34.374046" elapsed="0.113420"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:34.489065" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:34.488641" elapsed="0.000576">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:34.489446" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:34.488244" elapsed="0.001228"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.489809" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:34.489547" elapsed="0.000321"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.490637" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:34.490089" elapsed="0.000575"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:34.489893" elapsed="0.000807"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:34.489528" elapsed="0.001195"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.493156" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:34.490877" elapsed="0.002306"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:26:34.493236" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:26:34.493409" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:34.487894" elapsed="0.005541"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:34.494861" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:34.494467" elapsed="0.000539">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:34.495219" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:34.494094" elapsed="0.001151"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:26:34.495480" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:26:34.495319" elapsed="0.000220"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:34.495300" elapsed="0.000262"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.495771" elapsed="0.000024"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.495944" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:26:34.496010" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:26:34.498080" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:34.493753" elapsed="0.004354"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.499753" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:34.499368" elapsed="0.000434"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:34.500245" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:34.499957" elapsed="0.000335"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:26:34.505829" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:26:34.502438" elapsed="0.005192">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:34.500362" elapsed="0.007415">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.507977" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:34.507813" elapsed="0.000231"/>
</branch>
<status status="FAIL" start="2026-04-17T03:26:34.500343" elapsed="0.007725">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.508643" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:34.508782" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:26:34.508743" elapsed="0.000081"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:34.508725" elapsed="0.000121"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.508991" elapsed="0.000023"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:26:34.509062" elapsed="0.000014"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:26:34.498485" elapsed="0.010687">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:34.509250" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:26:34.350745" elapsed="0.158605">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.509655" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:34.509470" elapsed="0.000258"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:34.509451" elapsed="0.000301"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:34.509784" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:26:34.344107" elapsed="0.165778">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:26:34.338731" elapsed="0.171224">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:26:34.338581" elapsed="0.171433">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:26:34.333058" elapsed="0.177052">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:34.332664" elapsed="0.177502">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:26:34.332641" elapsed="0.177589">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:26:34.510545" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:34.510303" elapsed="0.000301"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:34.510286" elapsed="0.000342"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:26:34.331024" elapsed="0.179686">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.527215" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:44.526806" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:44.526778" elapsed="0.000541"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.529016" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:44.528500" elapsed="0.000546"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.529566" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:26:44.529214" elapsed="0.000380"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:26:44.529643" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:26:44.529813" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:26:44.528057" elapsed="0.001782"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.531243" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:44.530932" elapsed="0.000339"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:26:44.531319" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:26:44.531488" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:26:44.530565" elapsed="0.000948"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.624906" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:44.624187" elapsed="0.000869"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:44.627319" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:44.627014" elapsed="0.000398">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:44.627614" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:44.626123" elapsed="0.001587"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.629479" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:44.628738" elapsed="0.000842"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:26:44.630931" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:26:44.631218" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:26:44.630596" elapsed="0.000719"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.633104" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:44.632343" elapsed="0.000870"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.635072" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:44.634795" elapsed="0.000324"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.635586" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:26:44.635284" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.635962" elapsed="0.000022"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.636177" elapsed="0.000025"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.636353" elapsed="0.000020"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:26:44.635818" elapsed="0.000609"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:26:44.635669" elapsed="0.000792"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:26:44.636512" elapsed="0.000043"/>
</return>
<msg time="2026-04-17T03:26:44.636722" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:26:44.634145" elapsed="0.002626"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:44.633479" elapsed="0.003334"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.637175" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:44.636875" elapsed="0.000381"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:44.633418" elapsed="0.003893"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.639623" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:26:44.638291" elapsed="0.001433"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:26:44.639812" elapsed="0.000059"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:26:44.621530" elapsed="0.018594"/>
</kw>
<msg time="2026-04-17T03:26:44.640406" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:26:44.568321" elapsed="0.072148"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.653201" elapsed="0.000065"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.665556" elapsed="0.000083"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.679454" elapsed="0.000138"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.680127" elapsed="0.000057"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.681202" elapsed="0.000057"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.682344" elapsed="0.000158"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:44.681994" elapsed="0.000891"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:44.681954" elapsed="0.001002"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.683298" elapsed="0.000051"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.683724" elapsed="0.000049"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.684109" elapsed="0.000047"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:26:44.681864" elapsed="0.002366"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:26:44.681433" elapsed="0.002859"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.684654" elapsed="0.000050"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:44.684836" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:26:44.685253" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:26:44.563921" elapsed="0.121420"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:44.687598" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:44.686998" elapsed="0.000764">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:44.687985" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:44.686557" elapsed="0.001456"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.688480" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:44.688129" elapsed="0.000414"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.689339" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:44.688780" elapsed="0.000588"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:44.688568" elapsed="0.000864"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:44.688100" elapsed="0.001355"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.691938" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:44.689610" elapsed="0.002358"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:26:44.692020" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:26:44.692180" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:44.686132" elapsed="0.006074"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:44.693682" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:44.693239" elapsed="0.000589">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:44.694043" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:44.692864" elapsed="0.001205"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:26:44.694280" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-04-17T03:26:44.694141" elapsed="0.000199"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:44.694122" elapsed="0.000242"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.694537" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.694709" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:26:44.694774" elapsed="0.000015"/>
</return>
<msg time="2026-04-17T03:26:44.696887" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:44.692532" elapsed="0.004382"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.698495" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:44.698194" elapsed="0.000350"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:44.698970" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:44.698698" elapsed="0.000318"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:26:44.705125" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:26:44.701146" elapsed="0.005667">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:44.699084" elapsed="0.007819">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.707094" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:44.706937" elapsed="0.000222"/>
</branch>
<status status="FAIL" start="2026-04-17T03:26:44.699065" elapsed="0.008117">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.707752" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:44.707888" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:26:44.707851" elapsed="0.000083"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:44.707833" elapsed="0.000123"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.708101" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:26:44.708171" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:26:44.697324" elapsed="0.010957">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:44.708359" elapsed="0.000016"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:26:44.541623" elapsed="0.166866">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.708766" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:44.708586" elapsed="0.000251"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:44.708568" elapsed="0.000293"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:44.708893" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:26:44.535430" elapsed="0.173567">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:26:44.530059" elapsed="0.179046">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:26:44.529895" elapsed="0.179307">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:26:44.527661" elapsed="0.181644">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:44.527378" elapsed="0.181985">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:26:44.527362" elapsed="0.182049">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:26:44.709711" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:44.709484" elapsed="0.000284"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:44.709466" elapsed="0.000326"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:26:44.526233" elapsed="0.183645">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.725132" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:54.724775" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:54.724749" elapsed="0.000484"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.726911" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:54.726442" elapsed="0.000499"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.727446" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:26:54.727109" elapsed="0.000364"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:26:54.727522" elapsed="0.000305"/>
</return>
<msg time="2026-04-17T03:26:54.727965" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:26:54.725978" elapsed="0.002014"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.729090" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:54.728780" elapsed="0.000337"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:26:54.729165" elapsed="0.000028"/>
</return>
<msg time="2026-04-17T03:26:54.729315" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:26:54.728417" elapsed="0.000923"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.818195" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:54.817539" elapsed="0.000760"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:54.820307" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:54.820016" elapsed="0.000382">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:54.820600" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:54.819517" elapsed="0.001182"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.822359" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:54.821701" elapsed="0.001148"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:26:54.824149" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:26:54.824446" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:26:54.823826" elapsed="0.000721"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.825939" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:54.825530" elapsed="0.000520"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.827686" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:54.827417" elapsed="0.000314"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.828162" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:26:54.827891" elapsed="0.000297"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.828535" elapsed="0.000023"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.828946" elapsed="0.000026"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.829126" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:26:54.828397" elapsed="0.000788"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:26:54.828240" elapsed="0.000977"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:26:54.829263" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:26:54.829471" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:26:54.827021" elapsed="0.002500"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:54.826212" elapsed="0.003350"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.829893" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:54.829621" elapsed="0.000351"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:54.826155" elapsed="0.003871"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.831906" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:26:54.831166" elapsed="0.000838"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:26:54.832088" elapsed="0.000054"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:26:54.815296" elapsed="0.017103"/>
</kw>
<msg time="2026-04-17T03:26:54.832658" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:26:54.764637" elapsed="0.068078"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.844952" elapsed="0.000032"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.856726" elapsed="0.000029"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.868489" elapsed="0.000029"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.868759" elapsed="0.000025"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.868941" elapsed="0.000020"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.869376" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:54.869226" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:54.869210" elapsed="0.000372"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.869726" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.869896" elapsed="0.000021"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.870062" elapsed="0.000021"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:26:54.869173" elapsed="0.000943"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:26:54.869019" elapsed="0.001125"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.870289" elapsed="0.000021"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:54.870366" elapsed="0.000065"/>
</return>
<msg time="2026-04-17T03:26:54.870553" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:26:54.760465" elapsed="0.110116"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:54.872119" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:54.871693" elapsed="0.000581">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:54.872506" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:54.871299" elapsed="0.001232"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.872862" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:54.872603" elapsed="0.000317"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.873659" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:26:54.873138" elapsed="0.000550"/>
</kw>
<status status="PASS" start="2026-04-17T03:26:54.872944" elapsed="0.000779"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:54.872584" elapsed="0.001160"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.876121" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:26:54.873894" elapsed="0.002254"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:26:54.876200" elapsed="0.000031"/>
</return>
<msg time="2026-04-17T03:26:54.876356" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:54.870952" elapsed="0.005443"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:26:54.877772" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:26:54.877371" elapsed="0.000544">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:26:54.878126" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:26:54.877032" elapsed="0.001120"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:26:54.878364" elapsed="0.000080"/>
</return>
<status status="PASS" start="2026-04-17T03:26:54.878224" elapsed="0.000256"/>
</branch>
<status status="PASS" start="2026-04-17T03:26:54.878206" elapsed="0.000297"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.878650" elapsed="0.000061"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.878867" elapsed="0.000021"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:26:54.878933" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:26:54.880953" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:26:54.876707" elapsed="0.004272"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.882554" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:54.882191" elapsed="0.000411"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:26:54.883021" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:26:54.882753" elapsed="0.000312"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:26:54.889152" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:26:54.885100" elapsed="0.005760">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:54.883132" elapsed="0.007817">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.891138" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:54.890984" elapsed="0.000219"/>
</branch>
<status status="FAIL" start="2026-04-17T03:26:54.883113" elapsed="0.008113">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.891771" elapsed="0.000027"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:54.891906" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:26:54.891868" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:54.891851" elapsed="0.000117"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.892109" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:26:54.892178" elapsed="0.000014"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:26:54.881324" elapsed="0.010963">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:54.892365" elapsed="0.000029"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:26:54.739050" elapsed="0.153431">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.892755" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:54.892578" elapsed="0.000249"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:54.892560" elapsed="0.000291"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:26:54.892882" elapsed="0.000014"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:26:54.733128" elapsed="0.159854">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:26:54.728212" elapsed="0.164877">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:26:54.728049" elapsed="0.165102">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:26:54.725577" elapsed="0.167671">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:26:54.725289" elapsed="0.168015">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:26:54.725273" elapsed="0.168068">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:26:54.893648" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:26:54.893426" elapsed="0.000279"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:26:54.893407" elapsed="0.000321"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:26:54.724196" elapsed="0.169613">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Verify_Members_Are_Ready" owner="ClusterManagement">
<if>
<branch type="IF" condition="${verify_cluster_sync}">
<kw name="Check_Cluster_Is_In_Sync" owner="ClusterManagement">
<arg>${member_index_list}</arg>
<doc>Fail if no-sync is detected on a member from list (or any).</doc>
<status status="NOT RUN" start="2026-04-17T03:27:04.909671" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:04.909277" elapsed="0.000469"/>
</branch>
<status status="PASS" start="2026-04-17T03:27:04.909251" elapsed="0.000522"/>
</if>
<if>
<branch type="IF" condition="${verify_restconf}">
<kw name="Verify_Restconf_Is_Available" owner="ClusterManagement">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:27:04.911408" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:27:04.910914" elapsed="0.000525"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:27:04.911911" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:27:04.911604" elapsed="0.000333"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:27:04.911985" elapsed="0.000283"/>
</return>
<msg time="2026-04-17T03:27:04.912424" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:27:04.910493" elapsed="0.001958"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Resolve_Http_Session_For_Member" owner="ClusterManagement">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:27:04.913534" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>ClusterManagement__session_${member_index}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:27:04.913211" elapsed="0.000349"/>
</kw>
<return>
<value>${session}</value>
<status status="PASS" start="2026-04-17T03:27:04.913605" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:27:04.913756" level="INFO">${session} = ClusterManagement__session_1</msg>
<var>${session}</var>
<arg>member_index=${index}</arg>
<doc>Return RequestsLibrary session alias pointing to node of given index.</doc>
<status status="PASS" start="2026-04-17T03:27:04.912860" elapsed="0.000921"/>
</kw>
<kw name="Get_As_Json_Templated" owner="TemplatedRequests">
<kw name="Get_Templated" owner="TemplatedRequests">
<kw name="Resolve_Text_From_Template_Folder" owner="TemplatedRequests">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.004945" level="INFO">${file_path_stream} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/location.uri</msg>
<var>${file_path_stream}</var>
<arg>${folder}.${ODL_STREAM}${/}${file_name}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:27:05.004207" elapsed="0.000854"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:27:05.007139" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</msg>
<arg>${file_path_stream}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.006840" elapsed="0.000477">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules.vanadium/location.uri' does not exist.</status>
</kw>
<msg time="2026-04-17T03:27:05.007807" level="INFO">${file_stream_exists} = False</msg>
<var>${file_stream_exists}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${file_path_stream}</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:27:05.006281" elapsed="0.001625"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.009794" level="INFO">${file_path} = /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/location.uri</msg>
<var>${file_path}</var>
<arg>${file_stream_exists}</arg>
<arg>${file_path_stream}</arg>
<arg>${folder}${/}${file_name}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:27:05.008916" elapsed="0.000978"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-04-17T03:27:05.011275" level="INFO" html="true">Getting file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri"&gt;/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/location.uri&lt;/a&gt;'.</msg>
<msg time="2026-04-17T03:27:05.011745" level="INFO">${template} = /rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<var>${template}</var>
<arg>${file_path}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-04-17T03:27:05.010944" elapsed="0.000900"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.013240" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig
</msg>
<arg>${template}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:27:05.012830" elapsed="0.000519"/>
</kw>
<if>
<branch type="IF" condition="${percent_encode} == True">
<kw name="Encode_Mapping" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.014913" level="INFO">mapping: {}</msg>
<arg>mapping: ${mapping}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:27:05.014645" elapsed="0.000328"/>
</kw>
<kw name="Create Dictionary" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.015705" level="INFO">${encoded_mapping} = {}</msg>
<var>${encoded_mapping}</var>
<doc>Creates and returns a dictionary based on the given ``items``.</doc>
<status status="PASS" start="2026-04-17T03:27:05.015133" elapsed="0.000617"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Convert To String" owner="BuiltIn">
<var>${value}</var>
<arg>${value}</arg>
<doc>Converts the given item to a Unicode string.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.016106" elapsed="0.000022"/>
</kw>
<kw name="Percent_Encode_String" owner="TemplatedRequests">
<var>${encoded_value}</var>
<arg>${value}</arg>
<doc>Percent encodes reserved characters in the given string so it can be used as part of url.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.016318" elapsed="0.000025"/>
</kw>
<kw name="Set To Dictionary" owner="Collections">
<arg>${encoded_mapping}</arg>
<arg>${key}</arg>
<arg>${encoded_value}</arg>
<doc>Adds the given ``key_value_pairs`` and/or ``items`` to the ``dictionary``.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.016645" elapsed="0.000022"/>
</kw>
<var name="${key}"/>
<var name="${value}"/>
<status status="NOT RUN" start="2026-04-17T03:27:05.015968" elapsed="0.000737"/>
</iter>
<var>${key}</var>
<var>${value}</var>
<value>&amp;{mapping}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.015814" elapsed="0.000923"/>
</for>
<return>
<value>${encoded_mapping}</value>
<status status="PASS" start="2026-04-17T03:27:05.016784" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:27:05.016989" level="INFO">${mapping_to_use} = {}</msg>
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<status status="PASS" start="2026-04-17T03:27:05.014216" elapsed="0.002822"/>
</kw>
<status status="PASS" start="2026-04-17T03:27:05.013538" elapsed="0.003541"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<var>${mapping_to_use}</var>
<arg>${mapping}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.017433" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:05.017140" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-04-17T03:27:05.013476" elapsed="0.004091"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.019615" level="INFO">${final_text} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${final_text}</var>
<arg>string.Template('''${template}'''.rstrip()).safe_substitute(${mapping_to_use})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:27:05.018604" elapsed="0.001117"/>
</kw>
<return>
<value>${final_text}</value>
<status status="PASS" start="2026-04-17T03:27:05.019810" elapsed="0.000061"/>
</return>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="PASS" start="2026-04-17T03:27:05.001266" elapsed="0.018861"/>
</kw>
<msg time="2026-04-17T03:27:05.020437" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>not "${iterations}"</arg>
<arg>Resolve_Text_From_Template_File</arg>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:27:04.949164" elapsed="0.071372"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${prolog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.prolog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.033339" elapsed="0.000102"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${epilog}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${name_prefix}${base_name}.epilog.${extension}</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=${percent_encode}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.045432" elapsed="0.000054"/>
</kw>
<kw name="Resolve_Text_From_Template_File" owner="TemplatedRequests">
<var>${item_template}</var>
<arg>folder=${folder}</arg>
<arg>file_name=${base_name}.item.${extension}</arg>
<arg>mapping=${mapping}</arg>
<doc>Check if /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name} exists. If yes read and Log contents of file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules.vanadium/${file_name},
remove endline, perform safe substitution, return result.
If no do it with the default /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/${file_name}.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.057484" elapsed="0.000049"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<var>${items}</var>
<doc>Returns a list containing given items.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.057762" elapsed="0.000023"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${separator}</var>
<arg>'${extension}' != 'json'</arg>
<arg>${endline}</arg>
<arg>,${endline}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.057942" elapsed="0.000021"/>
</kw>
<for flavor="IN RANGE">
<iter>
<if>
<branch type="IF" condition="${iteration} &gt; ${iter_start}">
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${separator}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.058466" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:05.058280" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:05.058260" elapsed="0.000394"/>
</if>
<kw name="Evaluate" owner="BuiltIn">
<var>${j}</var>
<arg>${iteration}+${iter_j_offset}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.058835" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${item}</var>
<arg>string.Template('''${item_template}''').substitute({"i":"${iteration}", "j":${j}})</arg>
<arg>modules=string</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.059004" elapsed="0.000020"/>
</kw>
<kw name="Append To List" owner="Collections">
<arg>${items}</arg>
<arg>${item}</arg>
<doc>Adds ``values`` to the end of ``list``.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.059167" elapsed="0.000020"/>
</kw>
<var name="${iteration}"/>
<status status="NOT RUN" start="2026-04-17T03:27:05.058218" elapsed="0.001002"/>
</iter>
<var>${iteration}</var>
<value>${iter_start}</value>
<value>${iterations}+${iter_start}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.058024" elapsed="0.001224"/>
</for>
<kw name="Catenate" owner="BuiltIn">
<var>${final_text}</var>
<arg>SEPARATOR=</arg>
<arg>${prolog}</arg>
<arg>${endline}</arg>
<arg>@{items}</arg>
<arg>${endline}</arg>
<arg>${epilog}</arg>
<doc>Catenates the given items together and returns the resulted string.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.059395" elapsed="0.000057"/>
</kw>
<return>
<value>${final_text}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.059527" elapsed="0.000021"/>
</return>
<msg time="2026-04-17T03:27:05.059681" level="INFO">${uri} = /rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<var>${uri}</var>
<arg>folder=${folder}</arg>
<arg>base_name=location</arg>
<arg>extension=uri</arg>
<arg>mapping=${mapping}</arg>
<arg>percent_encode=True</arg>
<doc>Read a template from folder, strip endline, make changes according to mapping, return the result.
If ${iterations} value is present, put text together from "prolog", "item" and "epilog" parts,
where additional template variable ${i} goes from ${iter_start}, by one ${iterations} times.
Template variable ${j} is calculated as ${i} incremented by offset ${iter_j_offset} ( j = i + iter_j_offset )
used to create non uniform data in order to be able to validate UPDATE operations.
POST (as opposed to PUT) needs slightly different data, ${name_prefix} may be used to distinguish.
(Actually, it is GET who formats data differently when URI is a top-level container.)</doc>
<status status="PASS" start="2026-04-17T03:27:04.944900" elapsed="0.114809"/>
</kw>
<kw name="Resolve_Jmes_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:27:05.061334" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</msg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.060886" elapsed="0.000623">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/jmespath.expr' does not exist.</status>
</kw>
<msg time="2026-04-17T03:27:05.061725" level="INFO">${read_jmes_file} = False</msg>
<var>${read_jmes_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:27:05.060481" elapsed="0.001272"/>
</kw>
<if>
<branch type="IF" condition="${read_jmes_file} == ${true}">
<kw name="Get File" owner="OperatingSystem">
<var>${jmes_expression}</var>
<arg>${folder}${/}jmespath.expr</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.062094" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:05.061826" elapsed="0.000325"/>
</branch>
<branch type="ELSE">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.062967" level="INFO">${jmes_expression} = None</msg>
<var>${jmes_expression}</var>
<arg>${None}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:27:05.062370" elapsed="0.000633"/>
</kw>
<status status="PASS" start="2026-04-17T03:27:05.062175" elapsed="0.000875"/>
</branch>
<status status="PASS" start="2026-04-17T03:27:05.061808" elapsed="0.001270"/>
</if>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.066141" level="INFO">${expression} = </msg>
<var>${expression}</var>
<arg>${read_jmes_file} == ${true}</arg>
<arg>${jmes_expression}</arg>
<arg>${EMPTY}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:27:05.063280" elapsed="0.002888"/>
</kw>
<return>
<value>${expression}</value>
<status status="PASS" start="2026-04-17T03:27:05.066222" elapsed="0.000034"/>
</return>
<msg time="2026-04-17T03:27:05.066387" level="INFO">${jmes_expression} = </msg>
<var>${jmes_expression}</var>
<arg>${folder}</arg>
<doc>Reads JMES path from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/jmespath.expr if the file exists and
returns the JMES path. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:27:05.060101" elapsed="0.006338"/>
</kw>
<kw name="Resolve_Volatiles_Path" owner="TemplatedRequests">
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="File Should Exist" owner="OperatingSystem">
<msg time="2026-04-17T03:27:05.068001" level="FAIL">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</msg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.067585" elapsed="0.000563">File '/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/variables/restconf/modules/volatiles.list' does not exist.</status>
</kw>
<msg time="2026-04-17T03:27:05.068444" level="INFO">${read_volatiles_file} = False</msg>
<var>${read_volatiles_file}</var>
<arg>OperatingSystem.File Should Exist</arg>
<arg>${folder}${/}volatiles.list</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:27:05.067165" elapsed="0.001307"/>
</kw>
<if>
<branch type="IF" condition="${read_volatiles_file} == ${false}">
<return>
<value>${EMPTY}</value>
<status status="PASS" start="2026-04-17T03:27:05.068691" elapsed="0.000030"/>
</return>
<status status="PASS" start="2026-04-17T03:27:05.068550" elapsed="0.000212"/>
</branch>
<status status="PASS" start="2026-04-17T03:27:05.068529" elapsed="0.000260"/>
</if>
<kw name="Get File" owner="OperatingSystem">
<var>${volatiles}</var>
<arg>${folder}${/}volatiles.list</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.068938" elapsed="0.000023"/>
</kw>
<kw name="Split String" owner="String">
<var>${volatiles_list}</var>
<arg>${volatiles}</arg>
<arg>${\n}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.069112" elapsed="0.000022"/>
</kw>
<return>
<value>${volatiles_list}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.069180" elapsed="0.000016"/>
</return>
<msg time="2026-04-17T03:27:05.071393" level="INFO">${volatiles_list} = </msg>
<var>${volatiles_list}</var>
<arg>${folder}</arg>
<doc>Reads Volatiles List from file /w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/libraries/../variables/restconf/modules/volatiles.list if the file exists and
returns the Volatiles List. Empty string is returned otherwise.</doc>
<status status="PASS" start="2026-04-17T03:27:05.066769" elapsed="0.004684"/>
</kw>
<kw name="Get_From_Uri" owner="TemplatedRequests">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.072940" level="INFO">/rests/data/ietf-yang-library:modules-state?content=nonconfig</msg>
<arg>${uri}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:27:05.072651" elapsed="0.000336"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.073421" level="INFO">{}</msg>
<arg>${accept}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:27:05.073139" elapsed="0.000329"/>
</kw>
<if>
<branch type="IF" condition="&quot;&quot;&quot;${http_timeout}&quot;&quot;&quot; == &quot;&quot;&quot;${EMPTY}&quot;&quot;&quot;">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:05.078913" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.075590" elapsed="0.005116">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:27:05.073536" elapsed="0.007272">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<branch type="ELSE">
<kw name="GET On Session" owner="RequestsLibrary">
<var>${response}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>headers=${accept}</arg>
<arg>timeout=${http_timeout}</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.081036" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:05.080846" elapsed="0.000257"/>
</branch>
<status status="FAIL" start="2026-04-17T03:27:05.073518" elapsed="0.007610">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<kw name="Check_Status_Code" owner="TemplatedRequests">
<arg>${response}</arg>
<arg>log_response=${log_response}</arg>
<doc>Log response text, check status_code is one of allowed ones. In cases where this keyword is
called in a WUKS it could end up logging tons of data and it may be desired to skip the logging by passing
log_response=False, but by default it remains True.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.081710" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${normalize_json}">
<return>
<value>${response.text}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.081852" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:27:05.081811" elapsed="0.000085"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:05.081793" elapsed="0.000125"/>
</if>
<kw name="Normalize Json Text" owner="norm_json">
<var>${text_normalized}</var>
<arg>${response.text}</arg>
<arg>jmes_path=${jmes_path}</arg>
<arg>keys_with_volatiles=${keys_with_volatiles}</arg>
<doc>Attempt to return sorted indented JSON string.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.082067" elapsed="0.000022"/>
</kw>
<return>
<value>${text_normalized}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.082138" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>uri=${uri}</arg>
<arg>accept=${accept}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=${normalize_json}</arg>
<arg>jmes_path=${jmes_expression}</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>keys_with_volatiles=${volatiles_list}</arg>
<arg>log_response=${log_response}</arg>
<doc>GET data from given URI, check status code and return response text.
${accept} is a Python object with headers to use.
If ${normalize_json}, normalize as JSON text before returning.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.071810" elapsed="0.010442">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.082332" elapsed="0.000015"/>
</return>
<var>${response_text}</var>
<arg>folder=${folder}</arg>
<arg>mapping=${mapping}</arg>
<arg>accept=${ACCEPT_EMPTY}</arg>
<arg>session=${session}</arg>
<arg>normalize_json=True</arg>
<arg>http_timeout=${http_timeout}</arg>
<arg>log_response=${log_response}</arg>
<doc>Resolve URI from folder, call Get_From_Uri, return response text.</doc>
<status status="FAIL" start="2026-04-17T03:27:04.923357" elapsed="0.159097">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<if>
<branch type="IF" condition="${verify}">
<kw name="Verify_Response_As_Json_Templated" owner="TemplatedRequests">
<arg>response=${response_text}</arg>
<arg>folder=${folder}</arg>
<arg>base_name=data</arg>
<arg>mapping=${mapping}</arg>
<arg>iterations=${iterations}</arg>
<arg>iter_start=${iter_start}</arg>
<arg>iter_j_offset=${iter_j_offset}</arg>
<doc>Resolve expected JSON data, should be equal to provided ${response}.
JSON normalization is used, endlines enabled for readability.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.082734" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:05.082552" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:05.082534" elapsed="0.000359"/>
</if>
<return>
<value>${response_text}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.082926" elapsed="0.000015"/>
</return>
<arg>session=${session}</arg>
<arg>folder=${RESTCONF_MODULES_DIR}</arg>
<arg>verify=False</arg>
<doc>Add arguments sensible for JSON data, return Get_Templated response text.
Optionally, verification against JSON data (may be iterated) is called.
Only subset of JSON data is verified and returned if JMES path is specified in
file ${folder}/jmespath.expr.</doc>
<status status="FAIL" start="2026-04-17T03:27:04.917545" elapsed="0.165486">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<var name="${index}">1</var>
<status status="FAIL" start="2026-04-17T03:27:04.912687" elapsed="0.170495">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="FAIL" start="2026-04-17T03:27:04.912539" elapsed="0.170716">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</for>
<arg>${member_index_list}</arg>
<status status="FAIL" start="2026-04-17T03:27:04.910084" elapsed="0.173274">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<status status="FAIL" start="2026-04-17T03:27:04.909828" elapsed="0.173614">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</branch>
<status status="FAIL" start="2026-04-17T03:27:04.909812" elapsed="0.173664">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</if>
<if>
<branch type="IF" condition="${verify_system_status} and (&quot;${service_list}&quot; != &quot;[[]]&quot;)">
<kw name="Check Status Of Services Is OPERATIONAL" owner="ClusterManagement">
<arg>@{service_list}</arg>
<doc>This keyword will verify whether all the services are operational in all the ODL nodes</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.083777" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:05.083548" elapsed="0.000287"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:05.083529" elapsed="0.000329"/>
</if>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Verifies the specified readiness conditions for the given listed members after startup.
If ${verify_cluster_sync}, verifies the datastores have synced with the rest of the cluster.
If True, verifies RESTCONF is available.
If ${verify_system_status}, verifies the system services are OPERATIONAL.</doc>
<status status="FAIL" start="2026-04-17T03:27:04.908737" elapsed="0.175202">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:27:05.084053" level="FAIL">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>${timeout}</arg>
<arg>10s</arg>
<arg>Verify_Members_Are_Ready</arg>
<arg>${member_index_list}</arg>
<arg>${wait_for_sync}</arg>
<arg>${verify_restconf}</arg>
<arg>${check_system_status}</arg>
<arg>${service_list}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:20:57.388110" elapsed="367.696043">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Run_Bash_Command_On_List_Or_All" owner="ClusterManagement" type="TEARDOWN">
<kw name="List_Indices_Or_All" owner="ClusterManagement">
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.089621" level="INFO">${return_list_reference} = [1]</msg>
<var>${return_list_reference}</var>
<arg>"""${given_list}""" != ""</arg>
<arg>${given_list}</arg>
<arg>${ClusterManagement__member_index_list}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:27:05.089124" elapsed="0.000525"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.090119" level="INFO">${return_list_copy} = [1]</msg>
<var>${return_list_copy}</var>
<arg>@{return_list_reference}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-04-17T03:27:05.089814" elapsed="0.000331"/>
</kw>
<return>
<value>${return_list_copy}</value>
<status status="PASS" start="2026-04-17T03:27:05.090192" elapsed="0.000033"/>
</return>
<msg time="2026-04-17T03:27:05.090355" level="INFO">${index_list} = [1]</msg>
<var>${index_list}</var>
<arg>given_list=${member_index_list}</arg>
<doc>Utility to allow ${EMPTY} as default argument value, as the internal list is computed at runtime.
This keyword always returns a (shallow) copy of given or default list,
so operations with the returned list should not affect other lists.
Also note that this keyword does not consider empty list to be ${EMPTY}.</doc>
<status status="PASS" start="2026-04-17T03:27:05.088641" elapsed="0.001738"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Run_Bash_Command_On_Member" owner="ClusterManagement">
<kw name="Get From Dictionary" owner="Collections">
<msg time="2026-04-17T03:27:05.091524" level="INFO">${member_ip} = 10.30.170.85</msg>
<var>${member_ip}</var>
<arg>dictionary=${ClusterManagement__index_to_ip_mapping}</arg>
<arg>key=${member_index}</arg>
<doc>Returns a value from the given ``dictionary`` based on the given ``key``.</doc>
<status status="PASS" start="2026-04-17T03:27:05.091232" elapsed="0.000319"/>
</kw>
<kw name="Run_Keyword_Preserve_Connection" owner="SSHKeywords">
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:27:05.092468" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:27:05.092573" level="INFO">${current_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:27:05.092302" elapsed="0.000298"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Run Command On Controller" 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-04-17T03:27:05.096211" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:05.095897" elapsed="0.000371"/>
</branch>
<status status="PASS" start="2026-04-17T03:27:05.095875" elapsed="0.000418"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:27:05.096593" level="INFO">index=5
host=10.30.171.160
alias=None
port=22
timeout=30 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-04-17T03:27:05.096694" level="INFO">${current_ssh_connection} = index=5
host=10.30.171.160
alias=None
port=22
timeout=30 seconds
newline=

prompt=&gt;
term_type=vt100
width=80
height=24
path_separator=/
encoding=UTF-8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:27:05.096483" elapsed="0.000238"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.097489" level="INFO">Attempting to execute command "netstat -pnatu | grep 2550" on remote system "10.30.170.85" 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-04-17T03:27:05.096872" elapsed="0.000665"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:27:05.098288" level="INFO">${conn_id} = 14</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-04-17T03:27:05.097694" elapsed="0.000621"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.099813" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:27:05.099955" 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-04-17T03:27:05.099058" elapsed="0.000936"/>
</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-04-17T03:27:05.100224" elapsed="0.000656"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:27:05.103094" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:27:05.776925" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:27:05 UTC 2026

  System load:  0.0                Processes:             118
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:20:57 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:27:05.102599" elapsed="0.674838"/>
</kw>
<msg time="2026-04-17T03:27:05.777634" 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="PASS" start="2026-04-17T03:27:05.101152" elapsed="0.676661"/>
</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="PASS" start="2026-04-17T03:27:05.098555" elapsed="0.679471"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:27:05.778583" level="INFO">Executing command 'netstat -pnatu | grep 2550'.</msg>
<msg time="2026-04-17T03:27:05.791043" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-04-17T03:27:05.791292" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:27:05.791362" level="INFO">${stderr} = bash: line 1: netstat: command not found</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="PASS" start="2026-04-17T03:27:05.778274" elapsed="0.013157"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:27:05.791764" elapsed="0.000371"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.793016" level="INFO">bash: line 1: netstat: command not found</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:27:05.792476" elapsed="0.000695"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.793548" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:27:05.793301" elapsed="0.000321"/>
</branch>
<status status="PASS" start="2026-04-17T03:27:05.793264" elapsed="0.000394"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:27:05.793995" elapsed="0.000067"/>
</return>
<status status="PASS" start="2026-04-17T03:27:05.793741" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-17T03:27:05.793715" elapsed="0.000579"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:27:05.794373" elapsed="0.000068"/>
</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-04-17T03:27:05.815587" elapsed="0.000376"/>
</kw>
<msg time="2026-04-17T03:27:05.816062" 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-04-17T03:27:05.813334" elapsed="0.002856"/>
</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-04-17T03:27:05.816416" elapsed="0.000024"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.816605" elapsed="0.000021"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:27:05.795123" elapsed="0.021572"/>
</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="PASS" start="2026-04-17T03:27:05.095060" elapsed="0.721740"/>
</kw>
<msg time="2026-04-17T03:27:05.816855" 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="PASS" start="2026-04-17T03:27:05.094067" elapsed="0.722852"/>
</kw>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:27:05.093362" elapsed="0.723636"/>
</kw>
<msg time="2026-04-17T03:27:05.817041" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>${keyword_name}</arg>
<arg>@{args}</arg>
<arg>&amp;{kwargs}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-17T03:27:05.092815" elapsed="0.724285"/>
</kw>
<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-04-17T03:27:05.821589" elapsed="0.000175"/>
</kw>
<msg time="2026-04-17T03:27:05.821834" 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-04-17T03:27:05.820810" elapsed="0.001120"/>
</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-04-17T03:27:05.822254" elapsed="0.000028"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:05.822491" elapsed="0.000022"/>
</kw>
<arg>${current_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:27:05.817488" elapsed="0.005094"/>
</kw>
<msg time="2026-04-17T03:27:05.822681" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>Utils.Run_Command_On_Controller</arg>
<arg>${member_ip}</arg>
<arg>${command}</arg>
<doc>Store current connection index, run keyword returning its result, restore connection in teardown.
Note that in order to avoid "got positional argument after named arguments", it is safer to use positional (not named) arguments on call.</doc>
<status status="PASS" start="2026-04-17T03:27:05.091834" elapsed="0.730872"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:27:05.823218" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:27:05.822935" elapsed="0.000328"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:27:05.823310" elapsed="0.000036"/>
</return>
<arg>command=${command}</arg>
<arg>member_index=${index}</arg>
<doc>Obtain IP, call Utils and return output. This keeps previous ssh session active.</doc>
<status status="PASS" start="2026-04-17T03:27:05.090771" elapsed="0.732898"/>
</kw>
<var name="${index}">1</var>
<status status="PASS" start="2026-04-17T03:27:05.090594" elapsed="0.733114"/>
</iter>
<var>${index}</var>
<value>@{index_list}</value>
<status status="PASS" start="2026-04-17T03:27:05.090454" elapsed="0.733293"/>
</for>
<arg>command=netstat -pnatu | grep 2550</arg>
<doc>Cycle through indices (or all), run command on each.</doc>
<status status="PASS" start="2026-04-17T03:27:05.084485" elapsed="0.739323"/>
</kw>
<arg>wait_for_sync=False</arg>
<doc>If the list is empty, start all cluster members. Otherwise, start members based on present indices.
If ${wait_for_sync}, wait for cluster sync on listed members.
Optionally karaf_home can be overriden. Optionally specific JAVA_HOME is used for starting.
Garbage collection is unconditionally logged to files. TODO: Make that reasonable conditional?</doc>
<status status="FAIL" start="2026-04-17T03:20:56.972037" elapsed="368.851858">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Stop and Start controller.</doc>
<status status="FAIL" start="2026-04-17T03:20:55.425119" elapsed="370.398941">Keyword 'Verify_Members_Are_Ready' failed after retrying for 6 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/ietf-yang-library:modules-state?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t18" name="Check Linear Topology After Controller Restarts" line="128">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:05.829314" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:06.031270" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:06.434177" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:06.436561" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.826321" elapsed="0.615370">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.442328" elapsed="0.000094"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.443376" elapsed="0.000083"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.443859" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.444289" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.444756" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.445203" elapsed="0.000046"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.445745" elapsed="0.000059"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.446366" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:06.445978" elapsed="0.000544"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:06.445933" elapsed="0.000645"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.446916" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:06.446698" elapsed="0.000274"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:06.446663" elapsed="0.000333"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:06.447217" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:06.447048" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:06.447032" elapsed="0.000265"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:06.443004" elapsed="0.004316"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:06.442543" elapsed="0.004807"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.825963" elapsed="0.621533">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:08.454495" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:08.656689" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:09.059789" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:09.062597" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:08.449895" elapsed="0.617415">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.067675" elapsed="0.000032"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.068257" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.068759" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.068996" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.069233" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.069541" elapsed="0.000024"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.069773" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.070073" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:09.069878" elapsed="0.000263"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:09.069855" elapsed="0.000312"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.070411" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:09.070223" elapsed="0.000255"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:09.070206" elapsed="0.000304"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:09.070819" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:09.070582" elapsed="0.000313"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:09.070560" elapsed="0.000369"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:09.068079" elapsed="0.002877"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:09.067843" elapsed="0.003140"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:08.448891" elapsed="0.622202">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:11.076575" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:11.278200" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:11.680835" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:11.682959" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:11.072821" elapsed="0.613597">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.686922" elapsed="0.000056"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.687839" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.688191" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.688597" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.688982" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.689270" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.689634" elapsed="0.000032"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.690053" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:11.689776" elapsed="0.000427"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:11.689745" elapsed="0.000487"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.690491" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:11.690289" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:11.690272" elapsed="0.000301"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:11.690796" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:11.690626" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:11.690610" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:11.687509" elapsed="0.003393"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:11.687077" elapsed="0.003864"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:11.072143" elapsed="0.618951">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:13.696778" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:13.898758" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:14.301577" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:14.303735" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:13.692735" elapsed="0.616198">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.309577" elapsed="0.000062"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.310639" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.311196" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.311695" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.312199" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.312670" elapsed="0.000047"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.313125" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.313512" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:14.313250" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:14.313219" elapsed="0.000401"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.313885" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:14.313692" elapsed="0.000254"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:14.313673" elapsed="0.000298"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:14.314223" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:14.314028" elapsed="0.000253"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:14.314010" elapsed="0.000295"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:14.310189" elapsed="0.004143"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:14.309753" elapsed="0.004620"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:13.692084" elapsed="0.622461">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:16.321731" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:16.523753" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:16.926371" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:16.929358" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:16.316941" elapsed="0.618282">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.935905" elapsed="0.000071"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.936960" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.937522" elapsed="0.000085"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.938068" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.938589" elapsed="0.000073"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.939177" elapsed="0.000041"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.939425" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.939727" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:16.939526" elapsed="0.000264"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:16.939504" elapsed="0.000315"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.940065" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:16.939875" elapsed="0.000253"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:16.939859" elapsed="0.000293"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:16.940408" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:16.940207" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:16.940190" elapsed="0.000302"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:16.936574" elapsed="0.003941"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:16.936095" elapsed="0.004448"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:16.315933" elapsed="0.624740">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:18.947697" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:19.149865" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:19.552235" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:19.554351" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:18.942913" elapsed="0.615443">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.559131" elapsed="0.000061"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.560067" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.560514" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.560934" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.561353" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.561805" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.562132" elapsed="0.000033"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.562706" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:19.562303" elapsed="0.000521"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:19.562266" elapsed="0.000609"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.563366" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:19.562987" elapsed="0.000516"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:19.562953" elapsed="0.000597"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:19.564015" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:19.563661" elapsed="0.000462"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:19.563627" elapsed="0.000540"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:19.559728" elapsed="0.004481"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:19.559299" elapsed="0.004960"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:18.941984" elapsed="0.622511">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:21.572262" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:21.774227" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:22.176852" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:22.179225" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:21.567322" elapsed="0.616325">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.184128" elapsed="0.000059"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.184980" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.185292" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.185601" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.185802" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.185996" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.186290" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.186666" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:22.186435" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:22.186407" elapsed="0.000367"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.187075" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:22.186846" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:22.186825" elapsed="0.000361"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:22.187503" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:22.187256" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:22.187235" elapsed="0.000372"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:22.184670" elapsed="0.002968"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:22.184296" elapsed="0.003371"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:21.566379" elapsed="0.621418">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:24.195139" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:24.397158" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:24.800427" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:24.802807" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:24.190196" elapsed="0.617905">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.808792" elapsed="0.000066"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.810075" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.810659" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.810864" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.811059" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.811247" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.811455" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.811733" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:24.811557" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:24.811535" elapsed="0.000280"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.812034" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:24.811868" elapsed="0.000249"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:24.811853" elapsed="0.000295"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:24.812455" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:24.812218" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:24.812197" elapsed="0.000368"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:24.809626" elapsed="0.002967"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:24.808982" elapsed="0.003700"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:24.189164" elapsed="0.623640">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:26.820172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:27.022080" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:27.424480" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:27.427166" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:26.815074" elapsed="0.616271">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.431810" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.432504" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.432817" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.433135" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.433476" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.433848" elapsed="0.000037"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.434176" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.434749" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:27.434338" elapsed="0.000502"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:27.434298" elapsed="0.000579"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.435204" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:27.434956" elapsed="0.000333"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:27.434933" elapsed="0.000390"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:27.435662" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:27.435419" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:27.435376" elapsed="0.000397"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:27.432233" elapsed="0.003573"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:27.431934" elapsed="0.003910"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:26.814106" elapsed="0.621893">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:29.443841" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:29.645286" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:30.048078" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:30.050587" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:29.438915" elapsed="0.617459">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.057048" elapsed="0.000063"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.057993" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.058295" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.058715" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.058969" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.059226" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.059506" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.059886" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:30.059640" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:30.059612" elapsed="0.000388"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.060309" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:30.060073" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:30.060052" elapsed="0.000385"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:30.060731" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:30.060509" elapsed="0.000292"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:30.060488" elapsed="0.000350"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:30.057736" elapsed="0.003131"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:30.057232" elapsed="0.003670"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:29.437925" elapsed="0.623131">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:32.068973" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:32.270759" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:32.673047" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:32.675436" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:32.063636" elapsed="0.614657">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.678683" elapsed="0.000032"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.679258" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.679535" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.679824" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.680231" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.680553" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.680827" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.681113" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:32.680932" elapsed="0.000261"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:32.680910" elapsed="0.000319"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.681557" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:32.681310" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:32.681286" elapsed="0.000391"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:32.681916" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:32.681744" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:32.681725" elapsed="0.000271"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:32.679046" elapsed="0.002973"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:32.678772" elapsed="0.003275"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:32.062514" elapsed="0.619653">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:34.687804" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:34.889570" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:35.292508" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:35.294760" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:34.683988" elapsed="0.616109">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.300810" elapsed="0.000062"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.301941" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.302462" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.302947" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.303481" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.303931" elapsed="0.000046"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.304471" elapsed="0.000052"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.305036" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:35.304686" elapsed="0.000407"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:35.304643" elapsed="0.000476"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.305424" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:35.305184" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:35.305156" elapsed="0.000362"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:35.305829" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:35.305647" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:35.305628" elapsed="0.000320"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:35.301557" elapsed="0.004418"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:35.300993" elapsed="0.005010"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:34.683272" elapsed="0.622853">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:37.313708" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:37.515577" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:37.918958" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:37.921476" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:37.308964" elapsed="0.617983">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.927636" elapsed="0.000066"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.928766" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.929125" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.929325" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.929568" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.929770" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.929980" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.930263" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:37.930078" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:37.930057" elapsed="0.000288"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.930627" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:37.930424" elapsed="0.000264"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:37.930406" elapsed="0.000305"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:37.930937" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:37.930765" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:37.930749" elapsed="0.000267"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:37.928269" elapsed="0.002771"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:37.927824" elapsed="0.003242"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:37.307977" elapsed="0.623208">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:39.938480" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:40.140520" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:40.543460" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:40.546217" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:39.933460" elapsed="0.617604">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.551498" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.552135" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.552487" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.552806" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.553084" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.553444" elapsed="0.000041"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.553836" elapsed="0.000045"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.554284" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:40.554022" elapsed="0.000344"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:40.553986" elapsed="0.000459"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.554816" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:40.554555" elapsed="0.000368"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:40.554523" elapsed="0.000447"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:40.555454" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:40.555078" elapsed="0.000489"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:40.555046" elapsed="0.000568"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:40.551899" elapsed="0.003759"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:40.551615" elapsed="0.004095"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:39.932560" elapsed="0.623336">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:42.562813" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:42.764654" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:43.167179" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:43.169623" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:42.558158" elapsed="0.616918">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.175880" elapsed="0.000087"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.176772" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.177071" elapsed="0.000112"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.177637" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.178077" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.178456" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.178766" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.179209" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:43.178935" elapsed="0.000360"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:43.178888" elapsed="0.000445"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.179721" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:43.179465" elapsed="0.000339"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:43.179426" elapsed="0.000411"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:43.180175" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:43.179925" elapsed="0.000330"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:43.179895" elapsed="0.000395"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:43.176515" elapsed="0.003809"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:43.176111" elapsed="0.004252"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:42.557229" elapsed="0.623328">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:45.191014" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:45.392624" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:45.794875" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:45.797123" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:45.187342" elapsed="0.615689">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.803887" elapsed="0.000073"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.804646" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.804847" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.805041" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.805231" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.805435" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.805629" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.805900" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:45.805724" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:45.805703" elapsed="0.000277"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.806264" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:45.806033" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:45.806018" elapsed="0.000327"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:45.806583" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:45.806413" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:45.806396" elapsed="0.000265"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:45.804473" elapsed="0.002210"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:45.804090" elapsed="0.002620"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:45.186267" elapsed="0.620553">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:47.814323" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:48.016139" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:48.418593" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:48.420885" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:47.809541" elapsed="0.617008">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.427142" elapsed="0.000062"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.428315" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.428649" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.428840" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.429027" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.429217" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.429422" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.429691" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:48.429517" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:48.429497" elapsed="0.000273"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.429989" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:48.429823" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:48.429807" elapsed="0.000259"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:48.430282" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:48.430118" elapsed="0.000218"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:48.430102" elapsed="0.000256"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:48.427823" elapsed="0.002572"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:48.427320" elapsed="0.003104"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:47.808317" elapsed="0.622214">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:50.437625" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:50.639782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:51.042322" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:51.044870" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:50.432757" elapsed="0.616093">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.049289" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.050043" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.050337" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.050637" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.050903" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.051168" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.051458" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.051863" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:51.051619" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:51.051589" elapsed="0.000390"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.052285" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:51.052054" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:51.052032" elapsed="0.000382"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:51.052720" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:51.052490" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:51.052468" elapsed="0.000359"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:51.049766" elapsed="0.003091"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:51.049447" elapsed="0.003448"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:50.431814" elapsed="0.621236">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:53.058036" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:53.259343" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:53.661892" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:53.664215" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:53.054629" elapsed="0.614512">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.669638" elapsed="0.000049"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.670420" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.670710" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.670985" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.671255" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.671543" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.671822" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.672191" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:53.671952" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:53.671925" elapsed="0.000378"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.672655" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:53.672376" elapsed="0.000356"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:53.672355" elapsed="0.000409"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:53.673068" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:53.672838" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:53.672815" elapsed="0.000362"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:53.670163" elapsed="0.003068"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:53.669866" elapsed="0.003404"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:53.054039" elapsed="0.619399">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:55.680898" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:55.882573" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:56.285661" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:56.288303" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:55.676001" elapsed="0.617637">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.294367" elapsed="0.000098"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.295954" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.296475" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.296910" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.297333" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.297543" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.297741" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.298030" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:56.297853" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:56.297826" elapsed="0.000381"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.298450" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:56.298262" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:56.298246" elapsed="0.000283"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:56.298747" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:56.298581" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:56.298566" elapsed="0.000273"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:56.295576" elapsed="0.003285"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:56.294595" elapsed="0.004295"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:55.674966" elapsed="0.624064">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:27:58.304018" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:58.505810" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:58.907952" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:58.909894" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:27:58.300745" elapsed="0.612574">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.913771" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.914446" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.914729" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.915003" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.915272" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.915571" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.915848" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.916244" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:58.915986" elapsed="0.000335"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:58.915956" elapsed="0.000400"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.916761" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:58.916463" elapsed="0.000390"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:58.916428" elapsed="0.000459"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:27:58.917125" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:27:58.916945" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:27:58.916930" elapsed="0.000274"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:27:58.914189" elapsed="0.003037"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:27:58.913893" elapsed="0.003360"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:58.300084" elapsed="0.617289">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:00.926523" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:01.128746" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:01.532330" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:01.534649" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:00.920550" elapsed="0.619683">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.540959" elapsed="0.000059"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.541505" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.541715" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.541991" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.542243" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.542473" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.542671" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.542959" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:01.542770" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:01.542747" elapsed="0.000411"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.543477" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:01.543242" elapsed="0.000298"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:01.543218" elapsed="0.000356"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:01.543869" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:01.543648" elapsed="0.000285"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:01.543625" elapsed="0.000335"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:01.541295" elapsed="0.002688"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:01.541078" elapsed="0.002934"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:00.919368" elapsed="0.624756">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:03.551828" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:03.753999" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:04.156486" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:04.158931" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:03.546994" elapsed="0.616850">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.164394" elapsed="0.000064"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.165437" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.165732" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.166009" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.166301" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.166638" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.166923" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.167320" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:04.167059" elapsed="0.000366"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:04.167029" elapsed="0.000434"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.167780" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:04.167541" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:04.167517" elapsed="0.000373"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:04.168205" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:04.167965" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:04.167941" elapsed="0.000386"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:04.165159" elapsed="0.003200"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:04.164543" elapsed="0.003873"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:03.545995" elapsed="0.622583">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:06.175610" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:06.377583" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:06.780496" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:06.783163" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:06.170882" elapsed="0.617646">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.789115" elapsed="0.000057"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.790121" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.790626" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.791056" elapsed="0.000115"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.791598" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.792022" elapsed="0.000045"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.792412" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.792693" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:06.792515" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:06.792495" elapsed="0.000279"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.793012" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:06.792828" elapsed="0.000240"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:06.792812" elapsed="0.000280"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:06.793310" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:06.793145" elapsed="0.000219"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:06.793129" elapsed="0.000276"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:06.789753" elapsed="0.003677"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:06.789287" elapsed="0.004169"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:06.169933" elapsed="0.623633">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:08.799097" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:09.000801" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:09.403546" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:09.405859" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:08.795168" elapsed="0.614729">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.410340" elapsed="0.000066"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.411081" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.411368" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.411677" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.411956" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.412233" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.412531" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.412920" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:09.412667" elapsed="0.000371"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:09.412639" elapsed="0.000436"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.413472" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:09.413187" elapsed="0.000370"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:09.413150" elapsed="0.000440"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:09.413923" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:09.413665" elapsed="0.000370"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:09.413643" elapsed="0.000427"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:09.410838" elapsed="0.003265"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:09.410505" elapsed="0.003710"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:08.794555" elapsed="0.619852">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:11.421624" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:11.623327" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:12.025955" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:12.028477" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:11.417089" elapsed="0.616105">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.033673" elapsed="0.000049"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.034686" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.034970" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.035239" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.035528" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.035796" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.036094" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.036504" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:12.036233" elapsed="0.000349"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:12.036205" elapsed="0.000412"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.036925" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:12.036692" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:12.036670" elapsed="0.000363"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:12.037335" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:12.037104" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:12.037083" elapsed="0.000381"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:12.034439" elapsed="0.003056"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:12.033814" elapsed="0.003717"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:11.416118" elapsed="0.621560">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:14.044887" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:14.246834" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:14.649729" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:14.652636" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:14.040520" elapsed="0.617530">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.658707" elapsed="0.000064"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.659757" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.660208" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.660805" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.661254" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.661598" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.661803" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.662081" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:14.661906" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:14.661884" elapsed="0.000283"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.662402" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:14.662222" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:14.662207" elapsed="0.000275"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:14.662704" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:14.662534" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:14.662518" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:14.659326" elapsed="0.003476"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:14.658891" elapsed="0.003939"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:14.039254" elapsed="0.623692">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:16.670570" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:16.872574" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:17.275157" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:17.277610" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:16.665644" elapsed="0.617376">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.283752" elapsed="0.000066"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.284882" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.285371" elapsed="0.000085"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.285917" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.286500" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.286796" elapsed="0.000023"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.287001" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.287288" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:17.287112" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:17.287090" elapsed="0.000282"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.287619" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:17.287446" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:17.287430" elapsed="0.000268"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:17.287953" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:17.287752" elapsed="0.000260"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:17.287736" elapsed="0.000299"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:17.284431" elapsed="0.003628"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:17.283944" elapsed="0.004143"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:16.664623" elapsed="0.623577">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:19.294034" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:19.495424" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:19.897702" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:19.899989" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:19.290580" elapsed="0.615322">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.906318" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.907009" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.907292" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.907747" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.908021" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.908323" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.908695" elapsed="0.000052"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.909144" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:19.908860" elapsed="0.000377"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:19.908832" elapsed="0.000441"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.909608" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:19.909348" elapsed="0.000337"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:19.909326" elapsed="0.000391"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:19.910100" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:19.909858" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:19.909834" elapsed="0.000373"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:19.906763" elapsed="0.003476"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:19.906466" elapsed="0.003809"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:19.289589" elapsed="0.620854">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:21.917752" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:22.119364" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:22.522025" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:22.524356" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:21.913174" elapsed="0.616334">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.530168" elapsed="0.000062"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.530981" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.531180" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.531372" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.531580" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.531770" elapsed="0.000019"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.531961" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.532229" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:22.532056" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:22.532035" elapsed="0.000272"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.532554" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:22.532362" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:22.532347" elapsed="0.000285"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:22.532849" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:22.532684" elapsed="0.000219"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:22.532669" elapsed="0.000256"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:22.530813" elapsed="0.002135"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:22.530345" elapsed="0.002629"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:21.911900" elapsed="0.621191">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:24.538306" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:24.739918" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:25.142698" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:25.144845" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:24.534974" elapsed="0.613976">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.149371" elapsed="0.000061"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.150066" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.150347" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.150646" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.150915" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.151201" elapsed="0.000032"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.151525" elapsed="0.000043"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.151912" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:25.151673" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:25.151646" elapsed="0.000377"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.152325" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:25.152097" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:25.152075" elapsed="0.000378"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:25.152754" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:25.152525" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:25.152504" elapsed="0.000364"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:25.149800" elapsed="0.003099"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:25.149513" elapsed="0.003421"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:24.534356" elapsed="0.618725">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:27.160602" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:27.362851" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:27.766279" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:27.768483" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:27.155547" elapsed="0.618701">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.774705" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.775343" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.775648" elapsed="0.000121"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.776060" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.776342" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.776638" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.776919" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.777289" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:27.777050" elapsed="0.000366"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:27.777023" elapsed="0.000433"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.777856" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:27.777539" elapsed="0.000406"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:27.777515" elapsed="0.000463"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:27.778287" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:27.778053" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:27.778031" elapsed="0.000388"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:27.775109" elapsed="0.003344"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:27.774823" elapsed="0.003667"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:27.154486" elapsed="0.624151">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:29.785459" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:29.987117" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:30.389648" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:30.392369" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:29.780801" elapsed="0.616945">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.398168" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.398829" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.399115" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.399465" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.399824" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.400115" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.400416" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.400792" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:30.400553" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:30.400520" elapsed="0.000382"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.401291" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:30.400975" elapsed="0.000394"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:30.400953" elapsed="0.000468"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:30.401727" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:30.401496" elapsed="0.000306"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:30.401474" elapsed="0.000359"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:30.398595" elapsed="0.003269"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:30.398288" elapsed="0.003622"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:29.779909" elapsed="0.622166">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:32.412530" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:32.614018" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:33.016688" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:33.019019" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:32.409047" elapsed="0.613634">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.023117" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.023902" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.024290" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.024731" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.025056" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.025344" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.025649" elapsed="0.000035"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.026151" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:33.025819" elapsed="0.000440"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:33.025782" elapsed="0.000519"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.026647" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:33.026381" elapsed="0.000347"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:33.026358" elapsed="0.000403"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:33.027094" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:33.026836" elapsed="0.000355"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:33.026813" elapsed="0.000418"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:33.023587" elapsed="0.003678"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:33.023251" elapsed="0.004051"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:32.407976" elapsed="0.619508">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:35.034486" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:35.236104" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:35.638449" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:35.640746" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:35.029789" elapsed="0.616735">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.647122" elapsed="0.000059"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.648119" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.648589" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.649071" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.649460" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.649655" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.649850" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.650114" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:35.649944" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:35.649924" elapsed="0.000269"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.650426" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:35.650247" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:35.650231" elapsed="0.000273"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:35.650719" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:35.650555" elapsed="0.000217"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:35.650540" elapsed="0.000254"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:35.647749" elapsed="0.003067"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:35.647296" elapsed="0.003547"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:35.028842" elapsed="0.622113">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:37.656239" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:37.857941" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:38.260208" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:38.262601" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:37.652730" elapsed="0.615757">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.269159" elapsed="0.000065"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.270475" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.270688" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.270882" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.271072" elapsed="0.000019"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.271261" elapsed="0.000019"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.271471" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.271759" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:38.271578" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:38.271551" elapsed="0.000290"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.272064" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:38.271895" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:38.271879" elapsed="0.000261"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:38.272361" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:38.272193" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:38.272178" elapsed="0.000285"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:38.270054" elapsed="0.002433"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:38.269493" elapsed="0.003021"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:37.651956" elapsed="0.620682">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:40.280445" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:40.482198" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:40.884700" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:40.886738" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:40.274953" elapsed="0.615321">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.890746" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.891471" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.891784" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.892089" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.892409" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.892705" elapsed="0.000032"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.893001" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.893417" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:40.893140" elapsed="0.000430"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:40.893110" elapsed="0.000500"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.893984" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:40.893692" elapsed="0.000375"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:40.893668" elapsed="0.000433"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:40.894450" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:40.894180" elapsed="0.000364"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:40.894156" elapsed="0.000423"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:40.891191" elapsed="0.003423"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:40.890871" elapsed="0.003784"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:40.273990" elapsed="0.620819">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:42.901906" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:43.103825" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:43.506279" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:43.508510" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:42.897135" elapsed="0.616385">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.513942" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.514917" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.515202" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.515493" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.515771" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.516082" elapsed="0.000032"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.516360" elapsed="0.000049"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.516760" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:43.516516" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:43.516487" elapsed="0.000384"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.517179" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:43.516947" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:43.516926" elapsed="0.000362"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:43.517617" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:43.517359" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:43.517338" elapsed="0.000392"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:43.514676" elapsed="0.003085"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:43.514060" elapsed="0.003739"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:42.896169" elapsed="0.621772">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:45.525878" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:45.727472" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:46.129920" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:46.132085" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:45.520749" elapsed="0.615975">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.137171" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.137881" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.138180" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.138518" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.138829" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.139121" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.139437" elapsed="0.000053"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.139905" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:46.139641" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:46.139607" elapsed="0.000417"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.140350" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:46.140103" elapsed="0.000349"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:46.140080" elapsed="0.000407"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:46.140813" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:46.140564" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:46.140541" elapsed="0.000383"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:46.137632" elapsed="0.003326"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:46.137296" elapsed="0.003701"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:45.519598" elapsed="0.621562">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:48.148780" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:48.350547" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:48.752442" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:48.754265" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:48.144038" elapsed="0.613646">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.758195" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.758839" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.759110" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.759369" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.759774" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.760029" elapsed="0.000027"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.760350" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.760741" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:48.760503" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:48.760475" elapsed="0.000370"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.761140" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:48.760915" elapsed="0.000296"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:48.760895" elapsed="0.000348"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:48.761582" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:48.761313" elapsed="0.000353"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:48.761292" elapsed="0.000412"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:48.758614" elapsed="0.003140"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:48.758311" elapsed="0.003498"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:48.142861" elapsed="0.619129">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:50.769188" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:50.970912" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:51.373350" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:51.375591" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:50.764754" elapsed="0.614337">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.379599" elapsed="0.000046"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.380622" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.380900" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.381172" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.381450" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.381738" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.382077" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.382466" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:51.382210" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:51.382182" elapsed="0.000397"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.382878" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:51.382654" elapsed="0.000295"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:51.382631" elapsed="0.000356"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:51.383282" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:51.383059" elapsed="0.000293"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:51.383037" elapsed="0.000362"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:51.380360" elapsed="0.003073"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:51.379728" elapsed="0.003739"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:50.763698" elapsed="0.619910">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:53.390548" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:53.592725" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:53.995512" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:53.998117" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:53.385833" elapsed="0.617454">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.004006" elapsed="0.000062"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.004731" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.005054" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.005342" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.005634" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.005901" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.006166" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.006557" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:54.006298" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:54.006270" elapsed="0.000399"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.006970" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:54.006740" elapsed="0.000304"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:54.006720" elapsed="0.000356"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:54.007371" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:54.007144" elapsed="0.000347"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:54.007123" elapsed="0.000401"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:54.004492" elapsed="0.003064"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:54.004169" elapsed="0.003502"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:53.384929" elapsed="0.622901">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:56.015896" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:56.217704" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:56.620599" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:56.623032" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:56.010453" elapsed="0.615842">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.626788" elapsed="0.000047"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.627490" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.627779" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.628056" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.628343" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.628647" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.628922" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.629296" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:56.629055" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:56.629026" elapsed="0.000405"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.629844" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:56.629513" elapsed="0.000414"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:56.629486" elapsed="0.000473"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:56.630275" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:56.630031" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:56.630010" elapsed="0.000398"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:56.627224" elapsed="0.003219"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:56.626916" elapsed="0.003564"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:56.009214" elapsed="0.621427">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:28:58.636797" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:58.838451" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:59.240628" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:59.242954" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:28:58.633295" elapsed="0.615415">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.249346" elapsed="0.000061"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.250311" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.250614" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.250885" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.251186" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.251483" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.251755" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.252127" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:59.251887" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:59.251859" elapsed="0.000397"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.252586" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:59.252337" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:59.252315" elapsed="0.000380"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:28:59.253008" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:28:59.252765" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:28:59.252745" elapsed="0.000371"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:28:59.250071" elapsed="0.003076"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:28:59.249489" elapsed="0.003695"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:28:58.632225" elapsed="0.621107">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:01.260185" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:01.461670" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:01.864165" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:01.866444" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:01.255680" elapsed="0.616151">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.872260" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.873003" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.873289" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.873585" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.873939" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.874243" elapsed="0.000033"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.874547" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.874925" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:01.874680" elapsed="0.000350"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:01.874653" elapsed="0.000413"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.875379" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:01.875140" elapsed="0.000336"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:01.875118" elapsed="0.000390"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:01.875850" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:01.875602" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:01.875571" elapsed="0.000389"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:01.872750" elapsed="0.003243"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:01.872379" elapsed="0.003650"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:01.254706" elapsed="0.621470">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:03.884159" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:04.085915" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:04.488673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:04.491741" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:03.878843" elapsed="0.620648">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.500207" elapsed="0.000068"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.501365" elapsed="0.000086"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.502002" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.502542" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.502749" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.502943" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.503139" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.503459" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:04.503259" elapsed="0.000259"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:04.503231" elapsed="0.000315"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.503767" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:04.503601" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:04.503585" elapsed="0.000258"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:04.504139" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:04.503971" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:04.503953" elapsed="0.000264"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:04.500958" elapsed="0.003283"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:04.500431" elapsed="0.003837"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:03.877723" elapsed="0.626685">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:06.511903" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:06.714021" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:07.116545" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:07.118802" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:06.506907" elapsed="0.616419">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.123795" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.124736" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.125048" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.125335" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.125628" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.125898" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.126168" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.126561" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:07.126299" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:07.126272" elapsed="0.000408"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.126998" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:07.126755" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:07.126733" elapsed="0.000375"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:07.127433" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:07.127180" elapsed="0.000331"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:07.127158" elapsed="0.000386"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:07.124495" elapsed="0.003079"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:07.123914" elapsed="0.003702"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:06.505930" elapsed="0.621835">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:09.134175" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:09.335808" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:09.738607" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:09.740953" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:09.130002" elapsed="0.616548">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.747168" elapsed="0.000060"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.748260" elapsed="0.000071"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.748748" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.748946" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.749139" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.749342" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.749560" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.749838" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:09.749658" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:09.749638" elapsed="0.000280"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.750135" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:09.749970" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:09.749955" elapsed="0.000257"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:09.750461" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:09.750276" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:09.750254" elapsed="0.000290"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:09.747798" elapsed="0.002770"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:09.747341" elapsed="0.003252"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:09.129118" elapsed="0.621585">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:11.757932" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:11.959699" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:12.362218" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:12.364545" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:11.753156" elapsed="0.617186">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.371092" elapsed="0.000068"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.372019" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.372254" elapsed="0.000077"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.372538" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.372735" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.372927" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.373121" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.373423" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:12.373217" elapsed="0.000264"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:12.373197" elapsed="0.000311"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.373728" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:12.373562" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:12.373546" elapsed="0.000260"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:12.374051" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:12.373857" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:12.373842" elapsed="0.000315"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:12.371828" elapsed="0.002352"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:12.371360" elapsed="0.002848"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:11.752117" elapsed="0.622200">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:14.382297" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:14.584598" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:14.987190" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:14.989621" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:14.376849" elapsed="0.618784">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.996239" elapsed="0.000060"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.997259" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.997733" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.998204" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.998829" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.999088" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.999297" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.999595" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:14.999415" elapsed="0.000237"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:14.999376" elapsed="0.000302"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:14.999972" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:14.999732" elapsed="0.000297"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:14.999717" elapsed="0.000335"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:15.000272" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:15.000103" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:15.000088" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:14.996893" elapsed="0.003480"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:14.996448" elapsed="0.003968"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:14.375844" elapsed="0.624713">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:17.007936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:17.210078" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:17.612672" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:17.615435" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:17.003006" elapsed="0.617484">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.621084" elapsed="0.000060"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.622262" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.622804" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.623272" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.623767" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.624250" elapsed="0.000051"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.624755" elapsed="0.000050"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.625442" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:17.624995" elapsed="0.000584"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:17.624931" elapsed="0.000774"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.626096" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:17.625835" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:17.625798" elapsed="0.000376"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:17.626408" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:17.626225" elapsed="0.000239"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:17.626210" elapsed="0.000277"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:17.621778" elapsed="0.004732"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:17.621263" elapsed="0.005273"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:17.002017" elapsed="0.624628">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:19.637159" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:19.839079" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:20.241728" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:20.243985" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:19.633125" elapsed="0.616349">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.250104" elapsed="0.000064"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.251215" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.251798" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.252287" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.252840" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.253196" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.253400" elapsed="0.000023"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.253674" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:20.253501" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:20.253480" elapsed="0.000274"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.253971" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:20.253807" elapsed="0.000218"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:20.253792" elapsed="0.000256"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:20.254268" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:20.254099" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:20.254084" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:20.250792" elapsed="0.003576"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:20.250290" elapsed="0.004120"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:19.632167" elapsed="0.622370">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:22.261743" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:22.463455" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:22.865938" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:22.868289" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:22.256920" elapsed="0.614951">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.872302" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.873032" elapsed="0.000086"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.873398" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.873677" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.873947" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.874220" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.874509" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.874877" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:22.874639" elapsed="0.000328"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:22.874611" elapsed="0.000398"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.875339" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:22.875097" elapsed="0.000339"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:22.875068" elapsed="0.000403"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:22.875782" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:22.875546" elapsed="0.000311"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:22.875524" elapsed="0.000365"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:22.872790" elapsed="0.003217"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:22.872501" elapsed="0.003553"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:22.255897" elapsed="0.620313">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:24.883860" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:25.085668" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:25.488140" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:25.490753" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:24.879013" elapsed="0.617141">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.496818" elapsed="0.000066"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.497853" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.498335" elapsed="0.000079"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.498814" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.499347" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.499568" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.499769" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.500042" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:25.499867" elapsed="0.000292"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:25.499845" elapsed="0.000341"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.500430" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:25.500241" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:25.500225" elapsed="0.000286"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:25.500731" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:25.500564" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:25.500548" elapsed="0.000260"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:25.497474" elapsed="0.003357"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:25.497003" elapsed="0.003855"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:24.877994" elapsed="0.622985">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:27.508546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:27.709958" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:28.112682" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:28.115102" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:27.503255" elapsed="0.615054">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.118750" elapsed="0.000048"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.119554" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.119845" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.120113" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.120376" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.120671" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.120970" elapsed="0.000036"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.121360" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:28.121117" elapsed="0.000347"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:28.121088" elapsed="0.000412"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.121809" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:28.121577" elapsed="0.000309"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:28.121555" elapsed="0.000372"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:28.122276" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:28.122003" elapsed="0.000354"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:28.121980" elapsed="0.000436"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:28.119251" elapsed="0.003199"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:28.118912" elapsed="0.003579"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:27.502252" elapsed="0.620420">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:30.129994" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:30.332156" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:30.735091" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:30.737721" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:30.125155" elapsed="0.617374">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.743080" elapsed="0.000048"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.744086" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.744294" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.744507" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.744704" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.744919" elapsed="0.000025"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.745126" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.745470" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:30.745227" elapsed="0.000303"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:30.745204" elapsed="0.000354"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.745782" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:30.745612" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:30.745597" elapsed="0.000271"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:30.746090" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:30.745921" elapsed="0.000224"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:30.745906" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:30.743879" elapsed="0.002311"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:30.743213" elapsed="0.003005"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:30.124185" elapsed="0.622157">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:32.753705" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:32.955461" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:33.358195" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:33.360823" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:32.748810" elapsed="0.617506">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.366893" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.367589" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.367883" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.368156" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.368445" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.368771" elapsed="0.000032"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.369054" elapsed="0.000038"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.369575" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:33.369233" elapsed="0.000436"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:33.369194" elapsed="0.000515"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.370038" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:33.369788" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:33.369765" elapsed="0.000399"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:33.370508" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:33.370240" elapsed="0.000351"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:33.370217" elapsed="0.000411"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:33.367312" elapsed="0.003351"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:33.367018" elapsed="0.003682"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:32.747793" elapsed="0.623064">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:35.377665" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:35.579271" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:35.981662" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:35.983642" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:35.373556" elapsed="0.613590">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.987597" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.988331" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.988652" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.988930" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.989198" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.989488" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.989884" elapsed="0.000032"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.990272" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:35.990022" elapsed="0.000330"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:35.989995" elapsed="0.000413"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.990729" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:35.990490" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:35.990467" elapsed="0.000373"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:35.991145" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:35.990912" elapsed="0.000310"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:35.990891" elapsed="0.000364"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:35.988062" elapsed="0.003224"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:35.987753" elapsed="0.003571"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:35.372550" elapsed="0.618946">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:37.998571" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:38.200698" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:38.603699" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:38.605891" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:37.993920" elapsed="0.617088">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.611455" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.612442" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.612729" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.613051" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.613333" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.613629" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.613902" elapsed="0.000044"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.614418" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:38.614151" elapsed="0.000347"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:38.614122" elapsed="0.000411"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.614848" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:38.614608" elapsed="0.000316"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:38.614586" elapsed="0.000371"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:38.615260" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:38.615029" elapsed="0.000305"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:38.615007" elapsed="0.000359"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:38.612178" elapsed="0.003240"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:38.611577" elapsed="0.003953"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:37.992875" elapsed="0.622808">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:40.623038" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:40.824576" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:41.227740" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:41.230261" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:40.618519" elapsed="0.617743">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.236757" elapsed="0.000050"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.237535" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.237881" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.238171" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.238470" elapsed="0.000085"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.238908" elapsed="0.000038"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.239141" elapsed="0.000041"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.239500" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:41.239290" elapsed="0.000269"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:41.239259" elapsed="0.000329"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.239812" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:41.239644" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:41.239628" elapsed="0.000262"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:41.240111" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:41.239942" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:41.239926" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:41.237225" elapsed="0.002986"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:41.236890" elapsed="0.003350"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:40.617281" elapsed="0.623081">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:43.248045" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:43.450219" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:43.853183" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:43.855555" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:43.242769" elapsed="0.617794">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.860996" elapsed="0.000040"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.861660" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.861944" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.862218" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.862512" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.862787" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.863059" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.863488" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:43.863219" elapsed="0.000348"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:43.863191" elapsed="0.000411"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.863917" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:43.863679" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:43.863657" elapsed="0.000371"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:43.864337" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:43.864101" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:43.864079" elapsed="0.000392"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:43.861422" elapsed="0.003082"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:43.861112" elapsed="0.003428"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:43.241735" elapsed="0.622950">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:45.871920" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:46.073922" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:46.476278" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:46.478790" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:45.866958" elapsed="0.617642">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.485188" elapsed="0.000055"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.486548" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.486962" elapsed="0.000040"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.487348" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.487862" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.488276" elapsed="0.000039"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.488680" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.489197" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:46.488857" elapsed="0.000444"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:46.488821" elapsed="0.000596"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.489816" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:46.489534" elapsed="0.000370"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:46.489506" elapsed="0.000433"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:46.490238" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:46.490019" elapsed="0.000277"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:46.489995" elapsed="0.000325"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:46.486184" elapsed="0.004160"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:46.485373" elapsed="0.004998"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:45.866002" elapsed="0.624515">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:48.497546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:48.699185" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:49.101723" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:49.104206" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:48.492813" elapsed="0.616208">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.109486" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.110151" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.110458" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.110762" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.111044" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.111499" elapsed="0.000034"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.111838" elapsed="0.000033"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.112223" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:49.111978" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:49.111950" elapsed="0.000386"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.112669" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:49.112433" elapsed="0.000323"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:49.112408" elapsed="0.000382"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:49.113203" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:49.112960" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:49.112934" elapsed="0.000380"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:49.109912" elapsed="0.003433"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:49.109609" elapsed="0.003793"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:48.491897" elapsed="0.621662">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:51.118533" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:51.319953" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:51.722574" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:51.725076" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:51.115085" elapsed="0.616095">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.731627" elapsed="0.000039"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.732227" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.732509" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.732767" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.733028" elapsed="0.000027"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.733281" elapsed="0.000026"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.733575" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.734169" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:51.733714" elapsed="0.000539"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:51.733684" elapsed="0.000605"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.734623" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:51.734363" elapsed="0.000339"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:51.734341" elapsed="0.000395"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:51.735052" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:51.734809" elapsed="0.000324"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:51.734787" elapsed="0.000380"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:51.732006" elapsed="0.003196"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:51.731737" elapsed="0.003505"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:51.114460" elapsed="0.620957">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:53.742523" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:53.944617" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:54.347119" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:54.349618" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:53.737714" elapsed="0.617147">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.355555" elapsed="0.000068"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.357069" elapsed="0.000054"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.357722" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.358215" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.358768" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.359247" elapsed="0.000050"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.359564" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.359842" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:54.359665" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:54.359639" elapsed="0.000283"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.360138" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:54.359974" elapsed="0.000217"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:54.359959" elapsed="0.000255"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:54.360443" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:54.360264" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:54.360249" elapsed="0.000271"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:54.356664" elapsed="0.003878"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:54.355751" elapsed="0.004817"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:53.736726" elapsed="0.623951">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:56.367887" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:56.569668" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:56.972447" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:56.974684" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:56.363203" elapsed="0.617035">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.980707" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.981565" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.981784" elapsed="0.000084"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.982049" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.982276" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.982522" elapsed="0.000024"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.982726" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.983010" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:56.982830" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:56.982809" elapsed="0.000292"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.983427" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:56.983175" elapsed="0.000332"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:56.983153" elapsed="0.000387"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:56.983853" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:56.983616" elapsed="0.000313"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:56.983594" elapsed="0.000367"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:56.981218" elapsed="0.002775"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:56.980833" elapsed="0.003196"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:56.362129" elapsed="0.622044">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:29:58.990834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:59.192177" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:59.594853" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:59.597087" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:29:58.986562" elapsed="0.616298">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.603543" elapsed="0.000063"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.604622" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.605072" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.605542" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.605975" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.606430" elapsed="0.000049"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.606887" elapsed="0.000048"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.607676" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:59.607241" elapsed="0.000507"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:59.607175" elapsed="0.000599"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.608087" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:59.607832" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:59.607815" elapsed="0.000357"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:29:59.608413" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:29:59.608227" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:29:59.608210" elapsed="0.000288"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:29:59.604156" elapsed="0.004366"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:29:59.603729" elapsed="0.004820"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:29:58.985563" elapsed="0.623111">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:01.615317" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:01.817061" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:02.219560" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:02.222146" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:01.611234" elapsed="0.615968">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.227685" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.228381" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.228701" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.228987" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.229268" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.229617" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.229926" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.230326" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:02.230071" elapsed="0.000356"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:02.230035" elapsed="0.000431"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.230787" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:02.230545" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:02.230522" elapsed="0.000378"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:02.231221" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:02.230974" elapsed="0.000326"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:02.230952" elapsed="0.000381"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:02.228131" elapsed="0.003236"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:02.227811" elapsed="0.003613"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:01.610161" elapsed="0.621418">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:04.238289" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:04.439908" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:04.841762" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:04.844172" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:04.233815" elapsed="0.617775">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.852289" elapsed="0.000069"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.853120" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.853317" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.853524" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.853715" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.853908" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.854104" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.854373" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:04.854201" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:04.854179" elapsed="0.000289"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.854692" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:04.854521" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:04.854506" elapsed="0.000267"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:04.854989" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:04.854825" elapsed="0.000217"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:04.854810" elapsed="0.000254"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:04.852947" elapsed="0.002140"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:04.852567" elapsed="0.002547"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:04.232899" elapsed="0.622331">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:06.868276" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:07.070627" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:07.473086" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:07.475278" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:06.862323" elapsed="0.618196">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.481164" elapsed="0.000063"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.482291" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.482779" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.483213" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.483882" elapsed="0.000070"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.484367" elapsed="0.000084"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.484905" elapsed="0.000047"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.485205" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:07.485032" elapsed="0.000229"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:07.485012" elapsed="0.000274"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.485518" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:07.485339" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:07.485323" elapsed="0.000274"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:07.485814" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:07.485649" elapsed="0.000218"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:07.485634" elapsed="0.000257"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:07.481920" elapsed="0.003993"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:07.481473" elapsed="0.004466"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:06.856672" elapsed="0.629373">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:09.493677" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:09.695740" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:10.098587" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:10.100889" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:09.488596" elapsed="0.617695">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.106761" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.107446" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.107747" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.108036" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.108440" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.108813" elapsed="0.000038"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.109159" elapsed="0.000032"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.109581" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:10.109303" elapsed="0.000431"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:10.109274" elapsed="0.000499"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.110102" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:10.109853" elapsed="0.000329"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:10.109830" elapsed="0.000386"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:10.110562" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:10.110292" elapsed="0.000351"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:10.110269" elapsed="0.000408"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:10.107179" elapsed="0.003532"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:10.106884" elapsed="0.003866"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:09.487554" elapsed="0.623356">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:12.118502" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:12.320111" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:12.722820" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:12.725128" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:12.113417" elapsed="0.617034">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.731071" elapsed="0.000063"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.732168" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.732493" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.732789" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.733105" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.733426" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.733725" elapsed="0.000032"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.734148" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:12.733869" elapsed="0.000365"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:12.733838" elapsed="0.000434"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.734635" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:12.734356" elapsed="0.000363"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:12.734331" elapsed="0.000423"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:12.735095" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:12.734833" elapsed="0.000345"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:12.734810" elapsed="0.000402"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:12.731789" elapsed="0.003457"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:12.731312" elapsed="0.004002"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:12.112343" elapsed="0.623149">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:14.742436" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:14.944211" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:15.346726" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:15.478074" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:14.737991" elapsed="0.746145">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.484940" elapsed="0.000072"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.486297" elapsed="0.000183"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.486959" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.487357" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.487654" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.487980" elapsed="0.000036"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.488342" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.488762" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:15.488512" elapsed="0.000329"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:15.488482" elapsed="0.000396"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.489193" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:15.488954" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:15.488932" elapsed="0.000372"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:15.489637" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:15.489378" elapsed="0.000337"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:15.489356" elapsed="0.000393"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:15.485773" elapsed="0.004008"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:15.485147" elapsed="0.004672"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:14.736983" elapsed="0.752993">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:17.497485" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:17.699299" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:18.101894" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:18.104271" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:17.492704" elapsed="0.617741">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.111268" elapsed="0.000073"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.112899" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.113447" elapsed="0.000056"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.114042" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.114524" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.114719" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.114913" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.115184" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:18.115008" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:18.114988" elapsed="0.000278"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.115501" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:18.115319" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:18.115303" elapsed="0.000279"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:18.115801" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:18.115634" elapsed="0.000222"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:18.115619" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:18.112483" elapsed="0.003420"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:18.111518" elapsed="0.004410"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:17.491651" elapsed="0.624387">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:20.123472" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:20.325045" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:20.727626" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:20.729741" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:20.118678" elapsed="0.614801">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.733921" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.734589" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.734876" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.735153" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.735452" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.735744" elapsed="0.000038"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.736146" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.736559" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:20.736284" elapsed="0.000356"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:20.736257" elapsed="0.000439"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.737015" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:20.736776" elapsed="0.000318"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:20.736753" elapsed="0.000374"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:20.737460" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:20.737202" elapsed="0.000338"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:20.737181" elapsed="0.000391"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:20.734331" elapsed="0.003274"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:20.734041" elapsed="0.003601"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:20.117573" elapsed="0.620222">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:22.743362" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:22.944868" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:23.347191" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:23.349514" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:22.739432" elapsed="0.613735">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.353646" elapsed="0.000047"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.354342" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.354673" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.354968" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.355254" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.355558" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.355877" elapsed="0.000033"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.356284" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:23.356022" elapsed="0.000341"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:23.355991" elapsed="0.000575"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.356956" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:23.356689" elapsed="0.000351"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:23.356655" elapsed="0.000421"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:23.357423" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:23.357153" elapsed="0.000354"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:23.357130" elapsed="0.000415"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:23.354090" elapsed="0.003501"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:23.353776" elapsed="0.003963"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:22.738798" elapsed="0.619129">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:25.364970" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:25.567062" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:25.969318" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:25.971683" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:25.360291" elapsed="0.616870">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.977833" elapsed="0.000065"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.979462" elapsed="0.000059"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.979796" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.979996" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.980194" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.980403" elapsed="0.000023"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.980604" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.980877" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:25.980702" elapsed="0.000232"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:25.980681" elapsed="0.000278"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.981183" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:25.981014" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:25.980999" elapsed="0.000264"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:25.981500" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:25.981315" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:25.981299" elapsed="0.000281"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:25.978947" elapsed="0.002656"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:25.978020" elapsed="0.003610"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:25.359294" elapsed="0.622452">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:27.988749" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:28.190588" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:28.593310" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:28.596073" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:27.984363" elapsed="0.615359">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.600224" elapsed="0.000047"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.600937" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.601223" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.601528" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.601803" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.602072" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.602377" elapsed="0.000050"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.602776" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:28.602533" elapsed="0.000321"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:28.602506" elapsed="0.000382"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.603201" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:28.602966" elapsed="0.000313"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:28.602944" elapsed="0.000366"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:28.603644" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:28.603406" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:28.603364" elapsed="0.000390"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:28.600697" elapsed="0.003089"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:28.600355" elapsed="0.003468"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:27.983378" elapsed="0.620637">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:30.609910" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:30.812125" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:31.214606" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:31.216586" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:30.606094" elapsed="0.613919">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.220489" elapsed="0.000053"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.221160" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.221530" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.221815" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.222206" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.222528" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.222815" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.223201" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:31.222954" elapsed="0.000337"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:31.222925" elapsed="0.000402"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.223672" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:31.223430" elapsed="0.000320"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:31.223404" elapsed="0.000380"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:31.224096" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:31.223860" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:31.223838" elapsed="0.000368"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:31.220918" elapsed="0.003322"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:31.220623" elapsed="0.003666"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:30.605406" elapsed="0.619070">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:33.231172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:33.432757" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:33.835462" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:33.837805" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:33.227043" elapsed="0.615467">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.842972" elapsed="0.000047"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.843985" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.844285" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.844622" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.844934" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.845220" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.845533" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.845926" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:33.845671" elapsed="0.000337"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:33.845644" elapsed="0.000401"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.846372" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:33.846122" elapsed="0.000353"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:33.846100" elapsed="0.000410"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:33.846912" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:33.846658" elapsed="0.000335"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:33.846632" elapsed="0.000395"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:33.843730" elapsed="0.003331"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:33.843100" elapsed="0.003999"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:33.225962" elapsed="0.621289">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:35.854675" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:36.056517" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:36.458932" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:36.461136" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:35.849845" elapsed="0.616873">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.467461" elapsed="0.000081"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.468372" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.468620" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.468812" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.468999" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.469185" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.469375" elapsed="0.000040"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.469665" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:36.469492" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:36.469471" elapsed="0.000272"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.469960" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:36.469796" elapsed="0.000216"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:36.469781" elapsed="0.000254"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:36.470263" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:36.470086" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:36.470071" elapsed="0.000269"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:36.468180" elapsed="0.002182"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:36.467757" elapsed="0.002645"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:35.848883" elapsed="0.621633">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:38.478105" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:38.679690" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:39.082223" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:39.084837" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:38.473010" elapsed="0.617493">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.091205" elapsed="0.000034"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.091720" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.091931" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.092130" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.092327" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.092539" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.092740" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.093016" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:39.092838" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:39.092817" elapsed="0.000282"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.093329" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:39.093154" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:39.093138" elapsed="0.000290"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:39.093655" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:39.093483" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:39.093466" elapsed="0.000271"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:39.091535" elapsed="0.002226"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:39.091299" elapsed="0.002488"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:38.471910" elapsed="0.621988">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:41.101036" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:41.302738" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:41.705730" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:41.708051" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:41.096468" elapsed="0.617228">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.714334" elapsed="0.000065"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.715765" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.716212" elapsed="0.000141"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.716782" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.717391" elapsed="0.000104"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.718198" elapsed="0.000092"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.718590" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.718900" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:41.718719" elapsed="0.000238"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:41.718693" elapsed="0.000289"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.719204" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:41.719036" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:41.719021" elapsed="0.000289"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:41.719582" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:41.719390" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:41.719367" elapsed="0.000298"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:41.715357" elapsed="0.004342"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:41.714541" elapsed="0.005197"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:41.095541" elapsed="0.624362">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:43.725497" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:43.927331" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:44.330251" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:44.332725" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:43.721793" elapsed="0.616511">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.339014" elapsed="0.000065"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.340274" elapsed="0.000055"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.340608" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.340805" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.340996" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.341187" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.341386" elapsed="0.000033"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.341685" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:44.341507" elapsed="0.000233"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:44.341482" elapsed="0.000284"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.342061" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:44.341820" elapsed="0.000299"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:44.341805" elapsed="0.000337"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:44.342363" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:44.342194" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:44.342179" elapsed="0.000280"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:44.339866" elapsed="0.002616"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:44.339206" elapsed="0.003303"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:43.720973" elapsed="0.621648">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:46.350589" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:46.552870" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:46.955708" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:46.958792" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:46.345001" elapsed="0.619308">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.964811" elapsed="0.000046"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.965549" elapsed="0.000044"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.965852" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.966242" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.966572" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.966842" elapsed="0.000028"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.967153" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.967574" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:46.967301" elapsed="0.000359"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:46.967271" elapsed="0.000437"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.968070" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:46.967794" elapsed="0.000361"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:46.967772" elapsed="0.000414"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:46.968525" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:46.968258" elapsed="0.000355"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:46.968237" elapsed="0.000416"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:46.965253" elapsed="0.003433"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:46.964939" elapsed="0.003784"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:46.344012" elapsed="0.624870">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:48.976156" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:49.178370" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:49.581618" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:49.586453" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:48.971284" elapsed="0.621023">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.592951" elapsed="0.000061"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.594010" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.594491" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.594957" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.595576" elapsed="0.000057"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.595813" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.596005" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.596277" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:49.596100" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:49.596079" elapsed="0.000278"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.596591" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:49.596427" elapsed="0.000219"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:49.596410" elapsed="0.000258"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:49.596890" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:49.596719" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:49.596704" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:49.593610" elapsed="0.003379"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:49.593129" elapsed="0.003886"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:48.970343" elapsed="0.626780">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:51.603873" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:51.806136" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:52.208743" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:52.210921" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:51.599603" elapsed="0.614744">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.214823" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.215583" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.215865" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.216132" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.216421" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.216692" elapsed="0.000027"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.216959" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.217330" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:52.217091" elapsed="0.000335"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:52.217063" elapsed="0.000400"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.217769" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:52.217537" elapsed="0.000307"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:52.217515" elapsed="0.000361"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:52.218363" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:52.218047" elapsed="0.000442"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:52.217966" elapsed="0.000565"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:52.215302" elapsed="0.003268"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:52.215012" elapsed="0.003603"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:51.598511" elapsed="0.620290">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:54.230032" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:54.431380" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:54.833696" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:54.836217" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:54.226981" elapsed="0.614527">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.842194" elapsed="0.000077"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.843059" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.843277" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.843517" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.843732" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.843934" elapsed="0.000021"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.844136" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.844439" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:54.844239" elapsed="0.000344"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:54.844214" elapsed="0.000398"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.844843" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:54.844669" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:54.844653" elapsed="0.000269"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:54.845145" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:54.844975" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:54.844959" elapsed="0.000267"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:54.842882" elapsed="0.002375"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:54.842433" elapsed="0.002854"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:54.220671" elapsed="0.624745">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:56.852826" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:57.054520" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:57.457539" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:57.459418" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:56.847880" elapsed="0.615882">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.464312" elapsed="0.000059"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.465186" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.465520" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.465821" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.466111" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.466431" elapsed="0.000033"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.466794" elapsed="0.000043"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.467307" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:57.466978" elapsed="0.000499"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:57.466940" elapsed="0.000588"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.467961" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:57.467633" elapsed="0.000441"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:57.467602" elapsed="0.000519"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:30:57.468594" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:30:57.468229" elapsed="0.000476"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:30:57.468196" elapsed="0.000557"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:30:57.464906" elapsed="0.003891"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:30:57.464512" elapsed="0.004335"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:56.846831" elapsed="0.622278">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:30:59.477195" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:59.679378" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:00.082485" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:00.084939" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:30:59.471848" elapsed="0.617981">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.090280" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.090960" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.091242" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.091627" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.091908" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.092240" elapsed="0.000041"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.092664" elapsed="0.000043"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.093210" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:00.092844" elapsed="0.000473"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:00.092806" elapsed="0.000559"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.093822" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:00.093501" elapsed="0.000419"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:00.093469" elapsed="0.000485"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:00.094319" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:00.094046" elapsed="0.000377"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:00.094016" elapsed="0.000443"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:00.090724" elapsed="0.003770"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:00.090427" elapsed="0.004119"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:30:59.470613" elapsed="0.624096">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:02.102597" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:02.304579" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:02.707115" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:02.709764" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:02.097104" elapsed="0.617913">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.715765" elapsed="0.000064"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.716774" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.717218" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.717756" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.718145" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.718334" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.718546" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.718816" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:02.718643" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:02.718623" elapsed="0.000273"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.719114" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:02.718949" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:02.718934" elapsed="0.000258"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:02.719422" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:02.719243" elapsed="0.000235"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:02.719228" elapsed="0.000273"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:02.716379" elapsed="0.003145"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:02.715948" elapsed="0.003604"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:02.096082" elapsed="0.623622">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:04.724269" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:04.926022" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:05.328458" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:05.330773" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:04.721145" elapsed="0.613534">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.335187" elapsed="0.000049"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.336337" elapsed="0.000041"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.336681" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.337008" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.337311" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.337658" elapsed="0.000037"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.338312" elapsed="0.000035"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.338752" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:05.338489" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:05.338456" elapsed="0.000417"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.339263" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:05.338953" elapsed="0.000396"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:05.338930" elapsed="0.000477"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:05.339787" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:05.339489" elapsed="0.000388"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:05.339467" elapsed="0.000444"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:05.336049" elapsed="0.003896"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:05.335323" elapsed="0.004665"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:04.720566" elapsed="0.619604">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:07.345277" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:07.547842" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:07.950604" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:07.953078" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:07.341858" elapsed="0.615769">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.958122" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.958935" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.959296" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.959608" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.959888" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.960169" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.960473" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.961140" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:07.960779" elapsed="0.000445"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:07.960692" elapsed="0.000572"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.961619" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:07.961344" elapsed="0.000371"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:07.961321" elapsed="0.000431"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:07.962111" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:07.961833" elapsed="0.000362"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:07.961808" elapsed="0.000423"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:07.958619" elapsed="0.003646"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:07.958258" elapsed="0.004149"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:07.341206" elapsed="0.621377">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:09.970846" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:10.173193" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:10.575983" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:10.578554" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:09.965487" elapsed="0.617623">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.583613" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.584290" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.584597" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.584914" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.585195" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.585488" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.585765" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.586145" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:10.585902" elapsed="0.000319"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:10.585871" elapsed="0.000387"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.586588" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:10.586332" elapsed="0.000334"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:10.586311" elapsed="0.000389"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:10.587011" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:10.586774" elapsed="0.000314"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:10.586752" elapsed="0.000369"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:10.584031" elapsed="0.003123"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:10.583737" elapsed="0.003453"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:09.964373" elapsed="0.622971">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:12.592591" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:12.794254" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:13.197005" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:13.199220" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:12.588978" elapsed="0.613707">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.203146" elapsed="0.000041"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.204175" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.204523" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.204836" elapsed="0.000058"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.205172" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.205496" elapsed="0.000033"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.205794" elapsed="0.000030"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.206175" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:13.205925" elapsed="0.000327"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:13.205898" elapsed="0.000390"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.206585" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:13.206357" elapsed="0.000294"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:13.206338" elapsed="0.000341"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:13.206975" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:13.206746" elapsed="0.000308"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:13.206725" elapsed="0.000360"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:13.203908" elapsed="0.003206"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:13.203259" elapsed="0.003889"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:12.588322" elapsed="0.618966">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:15.215035" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:15.416982" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:15.819292" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:15.821121" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:15.209635" elapsed="0.614538">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.824613" elapsed="0.000033"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.825182" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.825445" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.825688" elapsed="0.000024"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.826010" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.826250" elapsed="0.000025"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.826513" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.826849" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:15.826626" elapsed="0.000292"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:15.826602" elapsed="0.000346"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.827239" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:15.827018" elapsed="0.000287"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:15.826997" elapsed="0.000336"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:15.827624" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:15.827412" elapsed="0.000281"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:15.827377" elapsed="0.000344"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:15.824973" elapsed="0.002775"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:15.824718" elapsed="0.003061"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:15.208656" elapsed="0.619255">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:17.834753" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:18.036756" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:18.439213" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:18.441931" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:17.830148" elapsed="0.617040">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.447851" elapsed="0.000044"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.448684" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.448977" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.449248" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.449538" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.449823" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.450092" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.450487" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:18.450224" elapsed="0.000341"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:18.450195" elapsed="0.000407"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.450910" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:18.450677" elapsed="0.000308"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:18.450656" elapsed="0.000361"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:18.451458" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:18.451175" elapsed="0.000366"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:18.451152" elapsed="0.000423"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:18.448419" elapsed="0.003189"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:18.447978" elapsed="0.003667"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:17.829351" elapsed="0.622445">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:20.459298" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:20.661301" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:21.064048" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:21.067297" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:20.454122" elapsed="0.618528">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.073453" elapsed="0.000070"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.075107" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.075472" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.075672" elapsed="0.000025"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.075900" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.076096" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.076291" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.076596" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:21.076415" elapsed="0.000236"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:21.076373" elapsed="0.000306"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.076900" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:21.076735" elapsed="0.000219"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:21.076719" elapsed="0.000259"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:21.077203" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:21.077028" elapsed="0.000230"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:21.077013" elapsed="0.000269"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:21.074720" elapsed="0.002584"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:21.073652" elapsed="0.003680"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:20.453124" elapsed="0.624362">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:23.084663" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:23.286353" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:23.689234" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:23.691507" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:23.079605" elapsed="0.615160">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.695218" elapsed="0.000039"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.695830" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.696088" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.696354" elapsed="0.000049"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.696660" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.696946" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.697234" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.697643" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:23.697372" elapsed="0.000374"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:23.697343" elapsed="0.000440"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.698100" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:23.697859" elapsed="0.000315"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:23.697837" elapsed="0.000369"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:23.698549" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:23.698277" elapsed="0.000353"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:23.698255" elapsed="0.000408"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:23.695616" elapsed="0.003081"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:23.695328" elapsed="0.003410"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:23.078637" elapsed="0.620271">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:25.705698" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:25.907794" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:26.310138" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:26.312747" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:25.700677" elapsed="0.617691">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.319115" elapsed="0.000070"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.320197" elapsed="0.000066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.320757" elapsed="0.000260"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.321503" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.321943" elapsed="0.000048"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.322260" elapsed="0.000031"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.322570" elapsed="0.000032"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.322975" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:26.322716" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:26.322685" elapsed="0.000415"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.323450" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:26.323180" elapsed="0.000355"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:26.323155" elapsed="0.000415"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:26.323930" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:26.323669" elapsed="0.000345"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:26.323638" elapsed="0.000414"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:26.319794" elapsed="0.004293"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:26.319312" elapsed="0.004816"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:25.699953" elapsed="0.624348">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:28.330612" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:28.532297" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:28.934657" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:28.937519" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:28.326298" elapsed="0.616231">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.942959" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.944046" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.944426" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.944767" elapsed="0.000043"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.945097" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.945412" elapsed="0.000035"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.945697" elapsed="0.000042"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.946122" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:28.945846" elapsed="0.000361"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:28.945818" elapsed="0.000424"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.946672" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:28.946317" elapsed="0.000439"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:28.946296" elapsed="0.000494"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:28.947109" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:28.946865" elapsed="0.000322"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:28.946843" elapsed="0.000377"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:28.943713" elapsed="0.003539"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:28.943082" elapsed="0.004207"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:28.325575" elapsed="0.621887">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:30.954197" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:31.156060" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:31.558517" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:31.560879" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:30.949714" elapsed="0.615726">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.565871" elapsed="0.000042"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.566610" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.566930" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.567247" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.567539" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.567806" elapsed="0.000035"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.568081" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.568522" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:31.568222" elapsed="0.000386"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:31.568188" elapsed="0.000455"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.568985" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:31.568722" elapsed="0.000360"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:31.568698" elapsed="0.000428"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:31.569518" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:31.569214" elapsed="0.000411"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:31.569186" elapsed="0.000481"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:31.566315" elapsed="0.003423"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:31.565990" elapsed="0.003797"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:30.948799" elapsed="0.621159">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:33.578096" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:33.779800" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:34.181782" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:34.184188" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:33.572607" elapsed="0.616131">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.189182" elapsed="0.000043"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.189881" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.190181" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.190550" elapsed="0.000036"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.190843" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.191145" elapsed="0.000042"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.191452" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.191763" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:34.191563" elapsed="0.000261"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:34.191536" elapsed="0.000315"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.192081" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:34.191906" elapsed="0.000234"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:34.191890" elapsed="0.000273"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:34.192398" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:34.192216" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:34.192200" elapsed="0.000280"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:34.189639" elapsed="0.002864"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:34.189307" elapsed="0.003222"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:33.571463" elapsed="0.621181">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:36.199934" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:36.401607" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:36.804328" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:36.806519" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:36.195011" elapsed="0.617203">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.812878" elapsed="0.000065"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.814113" elapsed="0.000090"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.814576" elapsed="0.000026"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.814854" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.815134" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.815407" elapsed="0.000027"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.815658" elapsed="0.000026"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.816013" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:36.815779" elapsed="0.000293"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:36.815752" elapsed="0.000347"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.816323" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:36.816154" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:36.816138" elapsed="0.000278"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:36.816639" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:36.816473" elapsed="0.000218"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:36.816458" elapsed="0.000261"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:36.813692" elapsed="0.003050"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:36.813154" elapsed="0.003614"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:36.194034" elapsed="0.622852">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:38.823946" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:39.026151" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:39.428956" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:39.431197" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:38.819211" elapsed="0.617552">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.437621" elapsed="0.000062"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.438336" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.438665" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.438936" elapsed="0.000028"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.439202" elapsed="0.000029"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.439528" elapsed="0.000032"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.439836" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.440238" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:39.439983" elapsed="0.000435"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:39.439955" elapsed="0.000505"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.440795" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:39.440538" elapsed="0.000337"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:39.440515" elapsed="0.000392"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:39.441210" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:39.440978" elapsed="0.000308"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:39.440957" elapsed="0.000362"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:39.438091" elapsed="0.003260"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:39.437791" elapsed="0.003618"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:38.818226" elapsed="0.623351">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:41.449662" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:41.651181" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:42.053724" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:42.056063" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:41.446457" elapsed="0.615440">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.062697" elapsed="0.000086"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.063969" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.064507" elapsed="0.000053"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.064789" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.064984" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.065183" elapsed="0.000022"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.065400" elapsed="0.000023"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.065687" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:42.065500" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:42.065480" elapsed="0.000291"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.065997" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:42.065826" elapsed="0.000226"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:42.065811" elapsed="0.000266"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:42.066299" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:42.066129" elapsed="0.000227"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:42.066113" elapsed="0.000282"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:42.063467" elapsed="0.002954"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:42.062940" elapsed="0.003509"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:41.442576" elapsed="0.623984">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:44.073568" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:44.275478" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:44.677438" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:44.679757" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:44.068628" elapsed="0.614670">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.683672" elapsed="0.000034"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.684154" elapsed="0.000023"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.684356" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.684571" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.684773" elapsed="0.000020"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.684965" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.685158" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.685447" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:44.685256" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:44.685234" elapsed="0.000296"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.685755" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:44.685585" elapsed="0.000225"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:44.685569" elapsed="0.000265"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:44.686055" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:44.685887" elapsed="0.000223"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:44.685871" elapsed="0.000262"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:44.683982" elapsed="0.002174"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:44.683765" elapsed="0.002419"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:44.067698" elapsed="0.618594">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:46.693904" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:46.895681" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:47.298294" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:47.300872" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:46.688623" elapsed="0.618096">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.307668" elapsed="0.000067"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.308914" elapsed="0.000060"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.309381" elapsed="0.000082"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.309865" elapsed="0.000051"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.310534" elapsed="0.000075"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.310973" elapsed="0.000025"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.311202" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.311492" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:47.311299" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:47.311278" elapsed="0.000296"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.311791" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:47.311626" elapsed="0.000219"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:47.311610" elapsed="0.000258"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:47.312106" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:47.311919" elapsed="0.000245"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:47.311904" elapsed="0.000284"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:47.308471" elapsed="0.003740"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:47.307895" elapsed="0.004341"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:46.687651" elapsed="0.624705">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:49.319627" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:49.521475" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:49.923702" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:49.926118" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:49.314631" elapsed="0.616346">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.931501" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.932185" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.932499" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.932787" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.933072" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.933376" elapsed="0.000051"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.933772" elapsed="0.000034"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.934210" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:49.933919" elapsed="0.000380"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:49.933889" elapsed="0.000449"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.934782" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:49.934483" elapsed="0.000430"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:49.934455" elapsed="0.000502"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:49.935542" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:49.935053" elapsed="0.000592"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:49.935024" elapsed="0.000663"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:49.931941" elapsed="0.003786"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:49.931627" elapsed="0.004148"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:49.313689" elapsed="0.622266">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:51.943371" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:52.145157" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:52.547306" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:52.549913" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:51.938427" elapsed="0.615917">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.554846" elapsed="0.000046"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.555934" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.556232" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.556588" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.556890" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.557173" elapsed="0.000030"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.557496" elapsed="0.000039"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.557909" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:52.557650" elapsed="0.000340"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:52.557618" elapsed="0.000409"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.558357" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:52.558107" elapsed="0.000354"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:52.558083" elapsed="0.000423"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:52.558837" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:52.558587" elapsed="0.000330"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:52.558564" elapsed="0.000389"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:52.555676" elapsed="0.003310"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:52.554974" elapsed="0.004133"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:51.937370" elapsed="0.621909">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:54.566514" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:54.768275" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:55.171208" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:55.175185" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:54.561904" elapsed="0.619212">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.181859" elapsed="0.000072"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.183104" elapsed="0.000073"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.183809" elapsed="0.000067"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.184248" elapsed="0.000022"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.184467" elapsed="0.000021"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.184665" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.184864" elapsed="0.000021"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.185163" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:55.184968" elapsed="0.000250"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:55.184944" elapsed="0.000303"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.185488" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:55.185302" elapsed="0.000242"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:55.185286" elapsed="0.000283"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:55.185803" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:55.185620" elapsed="0.000241"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:55.185605" elapsed="0.000279"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:55.182599" elapsed="0.003308"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:55.182058" elapsed="0.003878"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:54.560861" elapsed="0.625199">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:57.193487" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:57.396013" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:57.798523" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:57.800812" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:57.188339" elapsed="0.616990">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.805891" elapsed="0.000048"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.806712" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.807065" elapsed="0.000034"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.807365" elapsed="0.000063"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.807786" elapsed="0.000045"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.808169" elapsed="0.000044"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.808552" elapsed="0.000053"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.809054" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:57.808754" elapsed="0.000403"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:57.808716" elapsed="0.000485"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.809627" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:57.809287" elapsed="0.000455"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:57.809262" elapsed="0.000519"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:31:57.810122" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:31:57.809865" elapsed="0.000339"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:31:57.809840" elapsed="0.000399"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:31:57.806367" elapsed="0.003909"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:31:57.806022" elapsed="0.004297"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:57.187371" elapsed="0.623155">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:31:59.818208" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:00.020023" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:00.422722" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:00.424850" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:31:59.813260" elapsed="0.616688">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.430696" elapsed="0.000081"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.432467" elapsed="0.000061"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.432936" elapsed="0.000052"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.433518" elapsed="0.000064"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.434348" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.434636" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.434900" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.435222" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:00.435029" elapsed="0.000251"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:00.435001" elapsed="0.000307"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.435563" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:00.435363" elapsed="0.000277"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:00.435348" elapsed="0.000323"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:00.435898" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:00.435725" elapsed="0.000228"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:00.435709" elapsed="0.000267"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:32:00.431924" elapsed="0.004075"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:32:00.430898" elapsed="0.005129"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:31:59.812294" elapsed="0.623855">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:02.443980" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:02.645807" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:03.048770" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:03.050743" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:02.439124" elapsed="0.614844">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.054413" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.055164" elapsed="0.000035"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.055479" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.055759" elapsed="0.000030"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.056048" elapsed="0.000031"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.056330" elapsed="0.000029"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.056639" elapsed="0.000031"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.057077" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:03.056778" elapsed="0.000385"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:03.056748" elapsed="0.000453"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.057542" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:03.057279" elapsed="0.000346"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:03.057256" elapsed="0.000402"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:03.058075" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:03.057820" elapsed="0.000339"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:03.057795" elapsed="0.000399"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:32:03.054899" elapsed="0.003329"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:32:03.054535" elapsed="0.003733"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:02.437966" elapsed="0.620478">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:05.065839" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:05.267221" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:05.669235" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:05.671200" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:05.060887" elapsed="0.616217">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.677626" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.678331" elapsed="0.000033"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.678670" elapsed="0.000032"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.678952" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.679294" elapsed="0.000039"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.679698" elapsed="0.000043"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.680092" elapsed="0.000073"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.680671" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:05.680323" elapsed="0.000435"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:05.680280" elapsed="0.000517"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.681116" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:05.680878" elapsed="0.000317"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:05.680856" elapsed="0.000373"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:05.681602" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:05.681302" elapsed="0.000397"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:05.681280" elapsed="0.000453"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:32:05.678088" elapsed="0.003678"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:32:05.677752" elapsed="0.004055"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:05.059900" elapsed="0.622087">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Linear Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:07.688250" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:07.890003" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.292277" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.294503" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:07.684613" elapsed="0.613540">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.298798" elapsed="0.000064"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:${switch}"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.300274" elapsed="0.000050"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:1"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.300754" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.301193" elapsed="0.000046"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.301648" elapsed="0.000047"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:2"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.302073" elapsed="0.000044"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${edge}</var>
<arg>${switch}==1 or ${switch}==${switches}</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.302526" elapsed="0.000047"/>
</kw>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"tp-id":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.303113" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:08.302731" elapsed="0.000504"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:08.302688" elapsed="0.000655"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"source-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.303756" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:08.303498" elapsed="0.000313"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:08.303462" elapsed="0.000373"/>
</if>
<if>
<branch type="IF" condition="not ${edge}">
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>"dest-tp":"openflow:${switch}:3"</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.304052" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:08.303886" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-04-17T03:32:08.303871" elapsed="0.000258"/>
</if>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:32:08.299893" elapsed="0.004258"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:32:08.298979" elapsed="0.005199"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check Linear topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:07.683915" elapsed="0.620374">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:32:08.304407" level="FAIL">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>300s</arg>
<arg>2s</arg>
<arg>FlowLib.Check Linear Topology</arg>
<arg>${SWITCHES}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.825002" elapsed="302.479505">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Linear Topology.</doc>
<status status="FAIL" start="2026-04-17T03:27:05.824478" elapsed="302.480220">Keyword 'FlowLib.Check Linear Topology' failed after retrying for 5 minutes. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t19" name="Check Flows In Operational DS After Controller Restarts" line="132">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:08.308892" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.510026" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.912377" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.914414" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:08.306495" elapsed="0.611307">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.918242" elapsed="0.000043"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.918567" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:08.918859" elapsed="0.000029"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:08.306132" elapsed="0.612914">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:09.925486" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:10.127232" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:10.530676" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:10.533232" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:09.920968" elapsed="0.618133">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:10.539905" elapsed="0.000069"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:10.540496" elapsed="0.000058"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:10.541095" elapsed="0.000058"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:09.920070" elapsed="0.621366">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:11.548477" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:11.749932" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:12.152368" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:12.154695" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:11.543689" elapsed="0.614265">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:12.158495" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:12.158905" elapsed="0.000036"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:12.159242" elapsed="0.000036"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:11.542599" elapsed="0.616872">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:13.166481" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:13.368206" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:13.770321" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:13.773046" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:13.161321" elapsed="0.617198">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:13.779158" elapsed="0.000064"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:13.779669" elapsed="0.000051"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:13.780198" elapsed="0.000052"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:13.160438" elapsed="0.620081">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:14.787048" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:14.988818" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:15.391216" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:15.393348" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:14.782549" elapsed="0.615708">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:15.398720" elapsed="0.000043"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:15.399017" elapsed="0.000030"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:15.399302" elapsed="0.000030"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:14.781579" elapsed="0.617922">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:16.406420" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:16.608011" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:17.010685" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:17.013214" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:16.401605" elapsed="0.615489">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:17.017596" elapsed="0.000046"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:17.017928" elapsed="0.000035"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:17.018227" elapsed="0.000030"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:16.400543" elapsed="0.617890">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:18.025575" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:18.227903" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:18.631322" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:18.633697" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:18.020642" elapsed="0.619082">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:18.640635" elapsed="0.000091"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:18.641184" elapsed="0.000028"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:18.641454" elapsed="0.000025"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:18.019522" elapsed="0.622111">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:19.648510" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:19.850325" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:20.253041" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:20.255113" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:19.643670" elapsed="0.617088">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:20.261461" elapsed="0.000063"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:20.261931" elapsed="0.000049"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:20.262398" elapsed="0.000072"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:19.642548" elapsed="0.620147">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:21.268998" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:21.470884" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:21.873536" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:21.875491" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:21.265143" elapsed="0.614365">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:21.879989" elapsed="0.000045"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:21.880323" elapsed="0.000040"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:21.880660" elapsed="0.000031"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:21.263876" elapsed="0.616962">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:22.887670" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:23.089686" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:23.492279" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:23.494271" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:22.882958" elapsed="0.618333">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:23.501733" elapsed="0.000042"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:23.502085" elapsed="0.000045"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:23.502432" elapsed="0.000033"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:22.881951" elapsed="0.620695">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:24.509472" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:24.712049" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:25.114617" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:25.116713" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:24.505151" elapsed="0.616622">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:25.122218" elapsed="0.000041"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:25.122594" elapsed="0.000038"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:25.122917" elapsed="0.000033"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:24.504038" elapsed="0.619069">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:26.129563" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:26.331581" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:26.734101" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:26.736527" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:26.125028" elapsed="0.616167">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:26.741677" elapsed="0.000044"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:26.741986" elapsed="0.000031"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:26.742287" elapsed="0.000030"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:26.124094" elapsed="0.618407">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:27.749346" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:27.951046" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:28.353547" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:28.355821" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:27.744472" elapsed="0.616703">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:28.361981" elapsed="0.000065"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:28.362519" elapsed="0.000055"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:28.362994" elapsed="0.000142"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:27.743501" elapsed="0.619959">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:29.370032" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:29.572456" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:29.974833" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:29.976924" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:29.365443" elapsed="0.617373">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:29.983363" elapsed="0.000070"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:29.983732" elapsed="0.000037"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:29.984154" elapsed="0.000048"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:29.364356" elapsed="0.620106">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:30.990984" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:31.193561" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:31.596468" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:31.598818" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:30.986268" elapsed="0.617968">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:31.604909" elapsed="0.000061"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:31.605602" elapsed="0.000053"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:31.606070" elapsed="0.000049"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:30.985349" elapsed="0.620999">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:32.613909" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:32.816264" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:33.219029" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:33.221248" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:32.608707" elapsed="0.617027">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:33.226300" elapsed="0.000061"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:33.226766" elapsed="0.000048"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:33.227191" elapsed="0.000037"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:32.607606" elapsed="0.619822">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:34.232665" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:34.434665" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:34.837557" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:34.839982" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:34.229201" elapsed="0.616024">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:34.845900" elapsed="0.000064"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:34.846536" elapsed="0.000060"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:34.846826" elapsed="0.000025"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:34.228283" elapsed="0.618690">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:35.854062" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:36.055950" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:36.458704" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:36.461206" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:35.848857" elapsed="0.616111">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:36.465537" elapsed="0.000046"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:36.465844" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:36.466186" elapsed="0.000031"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:35.847899" elapsed="0.618469">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:37.474139" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:37.676069" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:38.078807" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:38.081665" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:37.468880" elapsed="0.617580">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:38.086912" elapsed="0.000045"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:38.087233" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:38.087564" elapsed="0.000033"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:37.467371" elapsed="0.620383">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Number Of Flows" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:39.095321" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.297433" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.699575" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.702109" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:39.089891" elapsed="0.616410">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:39.706758" elapsed="0.000042"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"priority"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:39.707099" elapsed="0.000033"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${flows}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:39.707415" elapsed="0.000032"/>
</kw>
<arg>${less_flows}</arg>
<doc>Check number of flows in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:39.088870" elapsed="0.618728">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:32:39.707740" level="FAIL">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>30s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Number Of Flows</arg>
<arg>${less_flows}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:32:08.305491" elapsed="31.402470">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:32:08.304924" elapsed="31.403288">Keyword 'FlowLib.Check Number Of Flows' failed after retrying for 30 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t20" name="Check Groups In Operational DS After Controller Restarts" line="136">
<kw name="Check Number Of Groups" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:39.713202" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.915071" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:40.317957" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:40.320334" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_NODES_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:39.710031" elapsed="0.615668">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:40.326130" elapsed="0.000040"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${group_count}</var>
<arg>${resp.text}</arg>
<arg>"group-type"</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:40.326642" elapsed="0.000033"/>
</kw>
<kw name="Should Be Equal As Integers" owner="BuiltIn">
<arg>${group_count}</arg>
<arg>${groups}</arg>
<doc>Fails if objects are unequal after converting them to integers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:40.326938" elapsed="0.000029"/>
</kw>
<arg>${less_groups}</arg>
<doc>Check number of groups in the inventory.</doc>
<status status="FAIL" start="2026-04-17T03:32:39.709333" elapsed="0.617784">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:32:39.708534" elapsed="0.618811">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s5-s1-t21" name="Check Flows In Switch After Controller Restarts" line="140">
<kw name="Check Flows In Mininet" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:32:40.329590" elapsed="0.000224"/>
</kw>
<status status="PASS" start="2026-04-17T03:32:40.329130" elapsed="0.000737"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:40.329095" elapsed="0.000810"/>
</if>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:32:40.330604" level="INFO">${cmd} = dpctl dump-aggregate -O OpenFlow13</msg>
<var>${cmd}</var>
<arg>dpctl dump-aggregate -O OpenFlow13</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:32:40.330154" elapsed="0.000495"/>
</kw>
<kw name="Send Mininet Command" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:32:40.331992" elapsed="0.000210"/>
</kw>
<status status="PASS" start="2026-04-17T03:32:40.331608" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:40.331580" elapsed="0.000710"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:32:40.337103" level="INFO">dpctl dump-aggregate -O OpenFlow13</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:32:40.332508" elapsed="0.004657"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:32:40.406431" level="INFO">*** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s3 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
mininet&gt;</msg>
<msg time="2026-04-17T03:32:40.406571" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ----------------------------...</msg>
<var>${output}</var>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:32:40.337330" elapsed="0.069271"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-17T03:32:40.406663" elapsed="0.000046"/>
</return>
<msg time="2026-04-17T03:32:40.406924" level="INFO">${output} = *** s1 ------------------------------------------------------------------------
OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=0 byte_count=0 flow_count=0
*** s2 ----------------------------...</msg>
<var>${output}</var>
<arg>${mininet_conn}</arg>
<arg>${cmd}</arg>
<doc>Sends Command dpctl dump-aggregate -O OpenFlow13 to Mininet session 5 and returns read buffer response.</doc>
<status status="PASS" start="2026-04-17T03:32:40.331132" elapsed="0.075821"/>
</kw>
<kw name="Get Regexp Matches" owner="String">
<msg time="2026-04-17T03:32:40.407448" level="INFO">${flows} = ['0', '0', '0']</msg>
<var>${flows}</var>
<arg>${output}</arg>
<arg>(?&lt;=flow_count\=).*?(?=\r)</arg>
<doc>Returns a list of all non-overlapping matches in the given string.</doc>
<status status="PASS" start="2026-04-17T03:32:40.407140" elapsed="0.000336"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:32:40.408115" level="INFO">${total_flows} = 0</msg>
<var>${total_flows}</var>
<arg>sum(map(int, ${flows}))</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:32:40.407651" elapsed="0.000492"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<msg time="2026-04-17T03:32:40.408767" level="FAIL">0.0 != 300.0</msg>
<arg>${total_flows}</arg>
<arg>${flow_count}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="FAIL" start="2026-04-17T03:32:40.408363" elapsed="0.000477">0.0 != 300.0</status>
</kw>
<arg>${mininet_conn_id}</arg>
<arg>${less_flows}</arg>
<doc>Sync with mininet to match exact number of flows</doc>
<status status="FAIL" start="2026-04-17T03:32:40.328622" elapsed="0.080325">0.0 != 300.0</status>
</kw>
<doc>Check Flows after mininet starts.</doc>
<status status="FAIL" start="2026-04-17T03:32:40.327719" elapsed="0.081378">0.0 != 300.0</status>
</test>
<test id="s1-s5-s1-t22" name="Stop Mininet" line="144">
<kw name="Stop Mininet And Exit" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:40.416090" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:40.415857" elapsed="0.000291"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:40.415835" elapsed="0.000338"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:32:40.417482" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:32:40.416308" elapsed="0.001232"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:32:40.660192" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 5 links
.....
*** Stopping 3 switches
s1 s2 s3 
*** Stopping 3 hosts
h1 h2 h3 
*** Done
completed in 865.346 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${TOOLS_SYSTEM_PROMPT}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:32:40.417717" elapsed="0.242618"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:40.660611" elapsed="0.000248"/>
</kw>
<doc>Stops Mininet and exits session ${mininet_conn}</doc>
<status status="PASS" start="2026-04-17T03:32:40.413911" elapsed="0.247024"/>
</kw>
<doc>Stop Mininet.</doc>
<status status="PASS" start="2026-04-17T03:32:40.409432" elapsed="0.251655"/>
</test>
<test id="s1-s5-s1-t23" name="Check No Switches" line="148">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:40.665861" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:40.867583" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:41.270152" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:41.272734" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:40.663031" elapsed="0.615041">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:41.278732" elapsed="0.000062"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:41.279459" elapsed="0.000050"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:32:41.279060" elapsed="0.000530"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:32:41.278911" elapsed="0.000743"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:32:40.662668" elapsed="0.617210">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:42.287598" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:42.489877" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:42.892704" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:42.894684" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:42.282080" elapsed="0.616140">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:42.898721" elapsed="0.000045"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:42.899208" elapsed="0.000034"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:32:42.898957" elapsed="0.000338"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:32:42.898847" elapsed="0.000490"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:32:42.280968" elapsed="0.618554">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:43.906933" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:44.109534" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:44.512992" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:44.515585" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:43.901565" elapsed="0.619370">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:44.521563" elapsed="0.000064"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:44.522274" elapsed="0.000052"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:32:44.521901" elapsed="0.000534"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:32:44.521741" elapsed="0.000757"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:32:43.900624" elapsed="0.622214">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check No Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:45.529020" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:45.730845" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:46.133354" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:46.135861" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:45.524734" elapsed="0.616513">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:46.142052" elapsed="0.000068"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Should Not Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>openflow:${switch}</arg>
<doc>Fails if ``container`` contains ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:46.142832" elapsed="0.000053"/>
</kw>
<var name="${switch}"/>
<status status="NOT RUN" start="2026-04-17T03:32:46.142427" elapsed="0.000546"/>
</iter>
<var>${switch}</var>
<value>1</value>
<value>${switches+1}</value>
<status status="NOT RUN" start="2026-04-17T03:32:46.142246" elapsed="0.000794"/>
</for>
<arg>${SWITCHES}</arg>
<doc>Check no switch is in topology</doc>
<status status="FAIL" start="2026-04-17T03:32:45.523867" elapsed="0.619468">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:32:46.143596" level="FAIL">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 5 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>5s</arg>
<arg>1s</arg>
<arg>FlowLib.Check No Switches In Topology</arg>
<arg>${SWITCHES}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:32:40.661942" elapsed="5.481889">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 5 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Check no switches in topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:40.661456" elapsed="5.482710">Keyword 'FlowLib.Check No Switches In Topology' failed after retrying for 5 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Final Phase" type="TEARDOWN">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:32:46.145421" level="INFO">${command} = sudo iptables -v -F</msg>
<var>${command}</var>
<arg>sudo iptables -v -F</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:32:46.145068" elapsed="0.000382"/>
</kw>
<kw name="Run Command On Controller" 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-04-17T03:32:46.148100" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:46.147785" elapsed="0.000375"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:46.147760" elapsed="0.000426"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:46.148540" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:32:46.148649" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:32:46.148339" elapsed="0.000337"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:46.149226" level="INFO">Attempting to execute command "sudo iptables -v -F" on remote system "10.30.170.85" 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-04-17T03:32:46.148829" elapsed="0.000444"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:46.149826" level="INFO">${conn_id} = 15</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-04-17T03:32:46.149447" elapsed="0.000405"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:32:46.150752" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:32:46.150832" 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-04-17T03:32:46.150450" elapsed="0.000408"/>
</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-04-17T03:32:46.151021" elapsed="0.000347"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:32:46.152248" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:32:46.856664" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:46 UTC 2026

  System load:  0.0                Processes:             120
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:27:05 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:32:46.151922" elapsed="0.704920"/>
</kw>
<msg time="2026-04-17T03:32:46.856948" 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="PASS" start="2026-04-17T03:32:46.151556" elapsed="0.705611"/>
</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="PASS" start="2026-04-17T03:32:46.150072" elapsed="0.707240"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:32:46.857969" level="INFO">Executing command 'sudo iptables -v -F'.</msg>
<msg time="2026-04-17T03:32:46.911594" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:32:46.911979" level="INFO">${stdout} = Flushing chain `INPUT'
Flushing chain `FORWARD'
Flushing chain `OUTPUT'
Flushing chain `DOCKER'
Flushing chain `DOCKER-BRIDGE'
Flushing chain `DOCKER-CT'
Flushing chain `DOCKER-FORWARD'
Flushing chain...</msg>
<msg time="2026-04-17T03:32:46.912090" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:32:46.857652" elapsed="0.054492"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:46.912724" elapsed="0.000530"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:46.914433" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:46.913742" elapsed="0.000794"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:46.915040" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:32:46.914717" elapsed="0.000433"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:46.914665" elapsed="0.000537"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:32:46.915630" elapsed="0.000069"/>
</return>
<status status="PASS" start="2026-04-17T03:32:46.915320" elapsed="0.000455"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:46.915287" elapsed="0.000543"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:46.915907" elapsed="0.000031"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:32:46.921084" elapsed="0.000389"/>
</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="PASS" start="2026-04-17T03:32:46.921648" elapsed="0.000174"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:46.921975" elapsed="0.000103"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:32:46.916654" elapsed="0.005480"/>
</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="PASS" start="2026-04-17T03:32:46.147225" elapsed="0.775003"/>
</kw>
<msg time="2026-04-17T03:32:46.922288" 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="PASS" start="2026-04-17T03:32:46.146342" elapsed="0.776015"/>
</kw>
<arg>cmd=${command}</arg>
<doc>Call Run Comand On Remote System, but with default values suitable for Controller machine.</doc>
<status status="PASS" start="2026-04-17T03:32:46.145660" elapsed="0.776795"/>
</kw>
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:46.925669" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:32:47.127021" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:32:47.529554" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:32:47.532150" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:46.923038" elapsed="0.614892">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<arg>RequestsLibrary.DELETE On Session</arg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:32:46.922637" elapsed="0.615486"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:47.538855" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:32:47.538619" elapsed="0.000468"/>
</kw>
<doc>Delete all sessions.</doc>
<status status="PASS" start="2026-04-17T03:32:46.144794" elapsed="1.394432"/>
</kw>
<doc>Test reconciliation of chained groups and flows after switch connection and controller are restarted.</doc>
<status status="FAIL" start="2026-04-17T03:18:09.640211" elapsed="877.899090"/>
</suite>
<status status="FAIL" start="2026-04-17T03:18:09.638208" elapsed="877.902726"/>
</suite>
<suite id="s1-s6" name="2429" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Bug_Validation/2429.robot">
<test id="s1-s6-t1" name="Bug_2429" line="22">
<kw name="Log Environment Details">
<kw name="Get Process ID Based On Regex On Remote System" owner="Utils">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:32:47.588308" level="INFO">${cmd} = ps -elf | grep -v grep | grep java.*karaf | awk '{print $4}'</msg>
<var>${cmd}</var>
<arg>ps -elf | grep -v grep | grep ${regex_string_to_match_on} | awk '{print $4}'</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:32:47.587845" elapsed="0.000497"/>
</kw>
<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-04-17T03:32:47.589714" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:47.589425" elapsed="0.000369"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:47.589396" elapsed="0.000437"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:47.590272" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:32:47.590408" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:32:47.590030" elapsed="0.000408"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:47.590984" level="INFO">Attempting to execute command "ps -elf | grep -v grep | grep java.*karaf | awk '{print $4}'" on remote system "10.30.170.85" 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-04-17T03:32:47.590574" elapsed="0.000460"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:47.591696" level="INFO">${conn_id} = 17</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-04-17T03:32:47.591168" elapsed="0.000558"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:32:47.592684" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:32:47.592790" 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-04-17T03:32:47.592308" elapsed="0.000515"/>
</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-04-17T03:32:47.593015" elapsed="0.000504"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:32:47.594754" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:32:47.955928" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:46 UTC 2026

  System load:  0.0                Processes:             120
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:32:46 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:32:47.594248" elapsed="0.361839"/>
</kw>
<msg time="2026-04-17T03:32:47.956170" 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="PASS" start="2026-04-17T03:32:47.593732" elapsed="0.362520"/>
</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="PASS" start="2026-04-17T03:32:47.591928" elapsed="0.364439"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:32:47.956863" level="INFO">Executing command 'ps -elf | grep -v grep | grep java.*karaf | awk '{print $4}''.</msg>
<msg time="2026-04-17T03:32:47.982220" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:32:47.982682" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:32:47.982794" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:32:47.956597" elapsed="0.026255"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:47.983271" elapsed="0.000690"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:47.985048" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:47.984323" elapsed="0.000829"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:47.985690" elapsed="0.000042"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:32:47.985336" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:47.985284" elapsed="0.000580"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:32:47.986247" elapsed="0.000074"/>
</return>
<status status="PASS" start="2026-04-17T03:32:47.985989" elapsed="0.000446"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:47.985953" elapsed="0.000544"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:47.986580" elapsed="0.000034"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:32:47.992098" elapsed="0.000441"/>
</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="PASS" start="2026-04-17T03:32:47.992787" elapsed="0.000189"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:47.993101" elapsed="0.000109"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:32:47.987292" elapsed="0.005974"/>
</kw>
<msg time="2026-04-17T03:32:47.993416" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${system}</arg>
<arg>${cmd}</arg>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<arg>prompt=${prompt}</arg>
<arg>prompt_timeout=${prompt_timeout}</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="PASS" start="2026-04-17T03:32:47.588776" elapsed="0.404669"/>
</kw>
<kw name="Fetch From Left" owner="String">
<msg time="2026-04-17T03:32:47.993840" level="INFO">${pid} = </msg>
<var>${pid}</var>
<arg>${output}</arg>
<arg>\r</arg>
<doc>Returns contents of the ``string`` before the first occurrence of ``marker``.</doc>
<status status="PASS" start="2026-04-17T03:32:47.993619" elapsed="0.000247"/>
</kw>
<return>
<value>${pid}</value>
<status status="PASS" start="2026-04-17T03:32:47.993917" elapsed="0.000042"/>
</return>
<msg time="2026-04-17T03:32:47.994092" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${ODL_SYSTEM_IP}</arg>
<arg>java.*karaf</arg>
<arg>${ODL_SYSTEM_USER}</arg>
<doc>Uses ps to find a process that matches the supplied regex. Returns the PID of that process
The ${regex_string_to_match_on} should produce a unique process otherwise the PID returned may not be
the expected PID</doc>
<status status="PASS" start="2026-04-17T03:32:47.585639" elapsed="0.408479"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:47.994603" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:47.994265" elapsed="0.000382"/>
</kw>
<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-04-17T03:32:47.997303" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:47.997024" elapsed="0.000340"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:47.996998" elapsed="0.000406"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:47.997712" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:32:47.997824" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:32:47.997537" elapsed="0.000314"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:47.998422" level="INFO">Attempting to execute command "netstat -na | grep 6633" on remote system "10.30.170.85" 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-04-17T03:32:47.997977" elapsed="0.000495"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:47.998997" level="INFO">${conn_id} = 19</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-04-17T03:32:47.998607" elapsed="0.000419"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:32:47.999999" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:32:48.000081" 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-04-17T03:32:47.999640" elapsed="0.000464"/>
</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-04-17T03:32:48.000241" elapsed="0.000361"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.001444" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:32:48.322438" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:46 UTC 2026

  System load:  0.0                Processes:             120
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:32:47 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:32:48.001097" elapsed="0.321511"/>
</kw>
<msg time="2026-04-17T03:32:48.322696" 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="PASS" start="2026-04-17T03:32:48.000748" elapsed="0.322031"/>
</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="PASS" start="2026-04-17T03:32:47.999231" elapsed="0.323665"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.323476" level="INFO">Executing command 'netstat -na | grep 6633'.</msg>
<msg time="2026-04-17T03:32:48.336363" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-04-17T03:32:48.336750" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:32:48.336852" level="INFO">${stderr} = bash: line 1: netstat: command not found</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="PASS" start="2026-04-17T03:32:48.323205" elapsed="0.013701"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:48.337289" elapsed="0.000591"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.338868" level="INFO">bash: line 1: netstat: command not found</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:48.338208" elapsed="0.000761"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:48.339467" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:32:48.339141" elapsed="0.000434"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:48.339093" elapsed="0.000533"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:32:48.340024" elapsed="0.000064"/>
</return>
<status status="PASS" start="2026-04-17T03:32:48.339782" elapsed="0.000381"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:48.339711" elapsed="0.000507"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:48.340294" elapsed="0.000031"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:32:48.345292" elapsed="0.000773"/>
</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="PASS" start="2026-04-17T03:32:48.346374" elapsed="0.000379"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:48.347018" elapsed="0.000218"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:32:48.340966" elapsed="0.006388"/>
</kw>
<msg time="2026-04-17T03:32:48.347663" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${ODL_SYSTEM_IP}</arg>
<arg>netstat -na | grep 6633</arg>
<arg>${ODL_SYSTEM_USER}</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="PASS" start="2026-04-17T03:32:47.995000" elapsed="0.352720"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.348377" level="INFO"/>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:48.348106" elapsed="0.000331"/>
</kw>
<doc>Will display relevant details of the test environement to help aid debugging efforts if
needed in the future.</doc>
<status status="PASS" start="2026-04-17T03:32:47.582208" elapsed="0.766303"/>
</kw>
<kw name="Get Process ID Based On Regex On Remote System" owner="Utils">
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.354107" level="INFO">${cmd} = ps -elf | grep -v grep | grep java.*karaf | awk '{print $4}'</msg>
<var>${cmd}</var>
<arg>ps -elf | grep -v grep | grep ${regex_string_to_match_on} | awk '{print $4}'</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:32:48.353775" elapsed="0.000362"/>
</kw>
<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-04-17T03:32:48.355370" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:48.355112" elapsed="0.000332"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:48.355088" elapsed="0.000382"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.355774" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:32:48.355878" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:32:48.355597" elapsed="0.000307"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.356460" level="INFO">Attempting to execute command "ps -elf | grep -v grep | grep java.*karaf | awk '{print $4}'" on remote system "10.30.170.85" 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-04-17T03:32:48.356039" elapsed="0.000469"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.357009" level="INFO">${conn_id} = 21</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-04-17T03:32:48.356637" elapsed="0.000398"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.357888" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:32:48.357965" 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-04-17T03:32:48.357607" elapsed="0.000382"/>
</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-04-17T03:32:48.358125" elapsed="0.000346"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.359268" level="INFO">Logging into '10.30.170.85:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:32:48.695562" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-171-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:46 UTC 2026

  System load:  0.0                Processes:             120
  Usage of /:   10.4% of 77.35GB   Users logged in:       0
  Memory usage: 2%                 IPv4 address for ens3: 10.30.170.85
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

10 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:32:48 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-0-builder-0 ~]&gt;</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="PASS" start="2026-04-17T03:32:48.358947" elapsed="0.336779"/>
</kw>
<msg time="2026-04-17T03:32:48.695830" 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="PASS" start="2026-04-17T03:32:48.358613" elapsed="0.337302"/>
</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="PASS" start="2026-04-17T03:32:48.357224" elapsed="0.338812"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.696521" level="INFO">Executing command 'ps -elf | grep -v grep | grep java.*karaf | awk '{print $4}''.</msg>
<msg time="2026-04-17T03:32:48.719522" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:32:48.719781" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:32:48.719918" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:32:48.696255" elapsed="0.023716"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:48.720286" elapsed="0.000538"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.721829" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:48.721154" elapsed="0.000772"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:48.722437" elapsed="0.000040"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:32:48.722109" elapsed="0.000439"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:48.722056" elapsed="0.000544"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:32:48.722966" elapsed="0.000061"/>
</return>
<status status="PASS" start="2026-04-17T03:32:48.722721" elapsed="0.000381"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:48.722685" elapsed="0.000472"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:48.723234" elapsed="0.000032"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:32:48.728107" elapsed="0.000352"/>
</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="PASS" start="2026-04-17T03:32:48.728601" elapsed="0.000162"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:48.728885" elapsed="0.000099"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:32:48.723938" elapsed="0.005100"/>
</kw>
<msg time="2026-04-17T03:32:48.729163" level="INFO">${output} = </msg>
<var>${output}</var>
<arg>${system}</arg>
<arg>${cmd}</arg>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<arg>prompt=${prompt}</arg>
<arg>prompt_timeout=${prompt_timeout}</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="PASS" start="2026-04-17T03:32:48.354499" elapsed="0.374691"/>
</kw>
<kw name="Fetch From Left" owner="String">
<msg time="2026-04-17T03:32:48.729579" level="INFO">${pid} = </msg>
<var>${pid}</var>
<arg>${output}</arg>
<arg>\r</arg>
<doc>Returns contents of the ``string`` before the first occurrence of ``marker``.</doc>
<status status="PASS" start="2026-04-17T03:32:48.729351" elapsed="0.000254"/>
</kw>
<return>
<value>${pid}</value>
<status status="PASS" start="2026-04-17T03:32:48.729652" elapsed="0.000029"/>
</return>
<msg time="2026-04-17T03:32:48.729807" level="INFO">${controller_pid} = </msg>
<var>${controller_pid}</var>
<arg>${ODL_SYSTEM_IP}</arg>
<arg>java.*karaf</arg>
<arg>${ODL_SYSTEM_USER}</arg>
<doc>Uses ps to find a process that matches the supplied regex. Returns the PID of that process
The ${regex_string_to_match_on} should produce a unique process otherwise the PID returned may not be
the expected PID</doc>
<status status="PASS" start="2026-04-17T03:32:48.351818" elapsed="0.378014"/>
</kw>
<kw name="Should Match Regexp" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.730352" level="FAIL">PID was not discovered: '' does not match '[0-9]+'</msg>
<arg>${controller_pid}</arg>
<arg>[0-9]+</arg>
<arg>PID was not discovered</arg>
<doc>Fails if ``string`` does not match ``pattern`` as a regular expression.</doc>
<status status="FAIL" start="2026-04-17T03:32:48.729985" elapsed="0.000457">PID was not discovered: '' does not match '[0-9]+'</status>
</kw>
<kw name="Get Process Thread Count On Remote System" owner="Utils">
<var>${starting_thread_count}</var>
<arg>${ODL_SYSTEM_IP}</arg>
<arg>${controller_pid}</arg>
<arg>${ODL_SYSTEM_USER}</arg>
<doc>Executes the ps command to retrieve the lightweight process (aka thread) count.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.730643" elapsed="0.000026"/>
</kw>
<kw name="Repeat Keyword" owner="BuiltIn">
<arg>${number_ofconnections_to_fail}</arg>
<arg>Start Process</arg>
<arg>nc</arg>
<arg>-w</arg>
<arg>1</arg>
<arg>${ODL_SYSTEM_IP}</arg>
<arg>${openflow_port}</arg>
<doc>Executes the specified keyword multiple times.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.730818" elapsed="0.000022"/>
</kw>
<kw name="Run" owner="OperatingSystem">
<arg>pkill -f 'nc -w'</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.730981" elapsed="0.000020"/>
</kw>
<kw name="Log Environment Details">
<doc>Will display relevant details of the test environement to help aid debugging efforts if
needed in the future.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.731239" elapsed="0.000023"/>
</kw>
<kw name="Get Process Thread Count On Remote System" owner="Utils">
<var>${ending_thread_count}</var>
<arg>${ODL_SYSTEM_IP}</arg>
<arg>${controller_pid}</arg>
<arg>${ODL_SYSTEM_USER}</arg>
<doc>Executes the ps command to retrieve the lightweight process (aka thread) count.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.731439" elapsed="0.000024"/>
</kw>
<kw name="Log Environment Details">
<doc>Will display relevant details of the test environement to help aid debugging efforts if
needed in the future.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.731679" elapsed="0.000025"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>starting count: ${starting_thread_count}\nending count: ${ending_thread_count}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.731926" elapsed="0.000023"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${acceptable_thread_count}</var>
<arg>${starting_thread_count} + (${number_of_connections_to_fail} * ${margin_of_error})</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.732137" elapsed="0.000021"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${ending_thread_count} &lt;= ${acceptable_thread_count}</arg>
<arg>Final thread count of ${ending_thread_count} exceeds acceptable count: ${acceptable_thread_count}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:48.732288" elapsed="0.000019"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.733499" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:32:48.733048" elapsed="0.000479"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="NOT RUN" start="2026-04-17T03:32:48.733754" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:32:48.733605" elapsed="0.000190"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:48.733586" elapsed="0.000231"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="PASS" start="2026-04-17T03:32:48.733943" elapsed="0.000217"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.735000" level="FAIL">'2429' does not contain '-'</msg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-04-17T03:32:48.734643" elapsed="0.000424">'2429' does not contain '-'</status>
</kw>
<msg time="2026-04-17T03:32:48.735160" level="INFO">${match} = False</msg>
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="PASS" start="2026-04-17T03:32:48.734295" elapsed="0.000890"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.735687" level="INFO">${bug_url} = https://bugs.opendaylight.org/show_bug.cgi?id=2429</msg>
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-04-17T03:32:48.735327" elapsed="0.000387"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.736371" level="INFO">${msg} = This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=2429</msg>
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-17T03:32:48.736072" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.736844" level="INFO">${newline} = 
</msg>
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-04-17T03:32:48.736543" elapsed="0.000327"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.737365" level="INFO">Set test message to:
This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=2429

PID was not discovered: '' does not match '[0-9]+'</msg>
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="PASS" start="2026-04-17T03:32:48.736994" elapsed="0.000436"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.737801" level="INFO">This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=2429</msg>
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:48.737556" elapsed="0.000291"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.738484" level="INFO">Set tag 'https://bugs.opendaylight.org/show_bug.cgi?id=2429'.</msg>
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="PASS" start="2026-04-17T03:32:48.738122" elapsed="0.000475"/>
</kw>
<status status="PASS" start="2026-04-17T03:32:48.737914" elapsed="0.000719"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:48.737896" elapsed="0.000762"/>
</if>
<arg>2429</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-04-17T03:32:48.732715" elapsed="0.005990"/>
</kw>
<doc>Using the "nc" tool, a number of connections to the 6633
will be opened and closed to simulate a failed OF handshake. The java threadcount
will be compared before and after to ensure that there are no thread leaks. Since
it's reasonable for other valid threads to be started (or stopped) during the test
a larger number of failed connections will be used and a small margin of error will
determine if the test is a PASS or FAIL</doc>
<tag>https://bugs.opendaylight.org/show_bug.cgi?id=2429</tag>
<status status="FAIL" start="2026-04-17T03:32:47.581042" elapsed="1.157710">This test fails due to https://bugs.opendaylight.org/show_bug.cgi?id=2429

PID was not discovered: '' does not match '[0-9]+'</status>
</test>
<doc>OF Handshake threads should be closed if the connection has a
failure. This bug was fixed in the Helium SR3 release but
persisted in to the Lithium release. Once fixed, this will
catch any future regressions</doc>
<meta name="https://bugs.opendaylight.org/show_bug.cgi?id=2429"/>
<status status="FAIL" start="2026-04-17T03:32:47.541511" elapsed="1.197779"/>
</suite>
<suite id="s1-s7" name="6917" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Bug_Validation/6917.robot">
<kw name="Initialization Phase" type="SETUP">
<kw name="Start Mininet Single Controller" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.819992" level="INFO">Clear any existing mininet</msg>
<arg>Clear any existing mininet</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:48.819630" elapsed="0.000507"/>
</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-04-17T03:32:48.822715" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:48.822377" elapsed="0.000400"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:48.822351" elapsed="0.000452"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.823131" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:32:48.823241" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:32:48.822957" elapsed="0.000311"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.823840" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:32:48.823434" elapsed="0.000455"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.824436" level="INFO">${conn_id} = 23</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-04-17T03:32:48.824045" elapsed="0.000419"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:32:48.825314" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:32:48.825406" 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-04-17T03:32:48.825030" elapsed="0.000402"/>
</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-04-17T03:32:48.825591" elapsed="0.000328"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:32:48.826784" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:32:49.424478" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:18:15 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:32:48.826462" elapsed="0.598222"/>
</kw>
<msg time="2026-04-17T03:32:49.424773" 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="PASS" start="2026-04-17T03:32:48.826086" elapsed="0.598778"/>
</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="PASS" start="2026-04-17T03:32:48.824681" elapsed="0.600304"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:32:49.425509" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:32:50.583600" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:32:50.583987" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:32:50.584096" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:32:49.425234" elapsed="1.158919"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:50.584671" elapsed="0.000614"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:50.586534" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:50.585813" elapsed="0.000857"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:50.587170" elapsed="0.000042"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:32:50.586857" elapsed="0.000429"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:50.586803" elapsed="0.000685"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:32:50.587898" elapsed="0.000094"/>
</return>
<status status="PASS" start="2026-04-17T03:32:50.587632" elapsed="0.000441"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:50.587593" elapsed="0.000539"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:50.588215" elapsed="0.000034"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:32:50.593918" elapsed="0.000531"/>
</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="PASS" start="2026-04-17T03:32:50.594700" elapsed="0.000240"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:50.595163" elapsed="0.000150"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:32:50.589003" elapsed="0.006411"/>
</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="PASS" start="2026-04-17T03:32:48.821869" elapsed="1.773688"/>
</kw>
<msg time="2026-04-17T03:32:50.595641" 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="PASS" start="2026-04-17T03:32:48.821166" elapsed="1.774556"/>
</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="PASS" start="2026-04-17T03:32:48.820699" elapsed="1.775145"/>
</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-04-17T03:32:50.598942" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:50.598502" elapsed="0.000528"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:50.598471" elapsed="0.000595"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:50.599516" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:32:50.599672" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:32:50.599290" elapsed="0.000422"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:50.600561" 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.171.160" 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-04-17T03:32:50.599958" elapsed="0.000674"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:50.601429" level="INFO">${conn_id} = 25</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-04-17T03:32:50.600863" elapsed="0.000607"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:32:50.602740" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:32:50.602856" 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-04-17T03:32:50.602307" elapsed="0.000585"/>
</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-04-17T03:32:50.603127" elapsed="0.000499"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:32:50.604960" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:32:50.948613" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:32:49 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:32:50.604491" elapsed="0.344369"/>
</kw>
<msg time="2026-04-17T03:32:50.948975" 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="PASS" start="2026-04-17T03:32:50.603876" elapsed="0.345201"/>
</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="PASS" start="2026-04-17T03:32:50.601790" elapsed="0.347549"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:32:50.949943" 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-04-17T03:32:50.982968" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:32:50.983287" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:32:50.983448" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:32:50.949642" elapsed="0.033871"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:50.984043" elapsed="0.000699"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:50.985994" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:50.985268" elapsed="0.000833"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:50.986714" elapsed="0.000056"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:32:50.986300" elapsed="0.000570"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:50.986246" elapsed="0.000684"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:32:50.987358" elapsed="0.000107"/>
</return>
<status status="PASS" start="2026-04-17T03:32:50.987066" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:50.987026" elapsed="0.000589"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:32:50.987711" elapsed="0.000046"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:32:50.991865" elapsed="0.000493"/>
</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="PASS" start="2026-04-17T03:32:50.992669" elapsed="0.000249"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:32:50.993134" elapsed="0.000144"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:32:50.988365" elapsed="0.004990"/>
</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="PASS" start="2026-04-17T03:32:50.597732" elapsed="0.395781"/>
</kw>
<msg time="2026-04-17T03:32:50.993593" 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="PASS" start="2026-04-17T03:32:50.596848" elapsed="0.396824"/>
</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="PASS" start="2026-04-17T03:32:50.596143" elapsed="0.397653"/>
</kw>
<arg>${mininet}</arg>
<status status="PASS" start="2026-04-17T03:32:48.820358" elapsed="2.173524"/>
</kw>
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:32:51.000521" level="INFO">${tools_connection} = 27</msg>
<var>${tools_connection}</var>
<arg>${ip_address}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:32:51.000112" elapsed="0.000436"/>
</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-04-17T03:32:51.002239" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:32:51.002325" 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-04-17T03:32:51.001947" elapsed="0.000409"/>
</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-04-17T03:32:51.002546" elapsed="0.000432"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:32:51.003911" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:32:51.330612" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:32:50 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:32:51.003543" elapsed="0.327431"/>
</kw>
<msg time="2026-04-17T03:32:51.331068" 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="PASS" start="2026-04-17T03:32:51.003154" elapsed="0.327999"/>
</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="PASS" start="2026-04-17T03:32:51.001506" elapsed="0.329906"/>
</kw>
<msg time="2026-04-17T03:32:51.331469" 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="PASS" start="2026-04-17T03:32:51.001084" elapsed="0.330433"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:32:51.000741" elapsed="0.330853"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-04-17T03:32:51.331656" elapsed="0.000076"/>
</return>
<msg time="2026-04-17T03:32:51.331918" level="INFO">${mininet_conn_id} = 27</msg>
<var>${mininet_conn_id}</var>
<arg>ip_address=${mininet}</arg>
<arg>timeout=${timeout}</arg>
<doc>Open a connection to the tools system at ${ip_address} and return its identifier.</doc>
<status status="PASS" start="2026-04-17T03:32:50.999400" elapsed="0.332545"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:32:51.332759" level="INFO">${mininet_conn_id} = 27</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-04-17T03:32:51.332284" elapsed="0.000542"/>
</kw>
<if>
<branch type="IF" condition="'${custom}' != '${EMPTY}'">
<kw name="Put File" owner="SSHLibrary">
<arg>${custom}</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:51.335179" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:32:51.332936" elapsed="0.002307"/>
</branch>
<status status="PASS" start="2026-04-17T03:32:51.332905" elapsed="0.002365"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:51.335852" level="INFO">Start mininet --topo tree,1 to 10.30.170.85</msg>
<arg>Start mininet ${options} to ${controller}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:51.335458" elapsed="0.000446"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:32:51.338879" level="INFO">sudo mn --controller 'remote,ip=10.30.170.85,port=6633' --topo tree,1 --switch ovsk,protocols=OpenFlow13</msg>
<arg>sudo mn --controller 'remote,ip=${controller},port=${ofport}' ${options} --switch ovsk,protocols=OpenFlow${ofversion}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:32:51.336074" elapsed="0.002891"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:32:51.546114" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6633
*** Adding hosts:
h1 h2 
*** Adding switches:
s1 
*** Adding links:
(s1, h1) (s1, h2) 
*** Configuring hosts
h1 h2 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:32:51.339173" elapsed="0.207116"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:32:51.546999" level="INFO">Check OVS configuratiom</msg>
<arg>Check OVS configuratiom</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:32:51.546654" elapsed="0.000395"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:32:51.549583" level="INFO">sh ovs-vsctl show</msg>
<arg>sh ovs-vsctl show</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:32:51.547222" elapsed="0.002446"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:32:51.562043" level="INFO">e6f5c2d7-d554-440d-9b27-fed60334327f
    Bridge s1
        Controller "tcp:10.30.170.85:6633"
        Controller "ptcp:6654"
        fail_mode: secure
        Port s1-eth2
            Interface s1-eth2
        Port s1-eth1
            Interface s1-eth1
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:32:51.549904" elapsed="0.012265"/>
</kw>
<return>
<value>${mininet_conn_id}</value>
<status status="PASS" start="2026-04-17T03:32:51.562244" elapsed="0.000056"/>
</return>
<msg time="2026-04-17T03:32:51.562529" level="INFO">${mininet_conn_id} = 27</msg>
<var>${mininet_conn_id}</var>
<doc>Start Mininet with custom topology and connect to controller.</doc>
<status status="PASS" start="2026-04-17T03:32:48.817449" elapsed="2.745108"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:32:51.563186" level="INFO">${mininet_conn_id} = 27</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-04-17T03:32:51.562781" elapsed="0.000450"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:51.563814" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d08eae3f50&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-04-17T03:32:51.563413" elapsed="0.000613"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:51.567903" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:51.769932" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:52.172250" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:52.174432" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:51.565116" elapsed="0.612824">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:52.178576" elapsed="0.000048"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:52.178917" elapsed="0.000035"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:52.179213" elapsed="0.000032"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:51.564837" elapsed="0.614611">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:53.186936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:53.389088" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:53.791842" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:53.794059" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:53.181109" elapsed="0.618227">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:53.800026" elapsed="0.000068"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:53.800561" elapsed="0.000053"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:53.800992" elapsed="0.000050"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:53.180246" elapsed="0.621054">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:54.807837" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:55.009882" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:55.412800" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:55.414981" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:54.803079" elapsed="0.616864">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:55.420423" elapsed="0.000045"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:55.420741" elapsed="0.000036"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:55.421032" elapsed="0.000033"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:54.802283" elapsed="0.618937">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:56.427535" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:56.629616" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:57.031778" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:57.033815" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:56.422961" elapsed="0.613181">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:57.036507" elapsed="0.000033"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:57.036729" elapsed="0.000022"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:57.036916" elapsed="0.000021"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:56.422220" elapsed="0.614834">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:58.041916" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:58.243707" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:58.646293" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:58.649196" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:58.038401" elapsed="0.616313">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:58.655504" elapsed="0.000068"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:58.655982" elapsed="0.000047"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:32:58.656591" elapsed="0.000048"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:58.037857" elapsed="0.619022">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:32:59.661716" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:59.863206" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:00.266031" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:00.268490" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:32:59.658240" elapsed="0.613796">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:00.272543" elapsed="0.000050"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:00.272894" elapsed="0.000033"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:00.273166" elapsed="0.000031"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:32:59.657709" elapsed="0.615647">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:01.279644" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:01.481219" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:01.883550" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:01.886773" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:01.275082" elapsed="0.619650">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:01.895325" elapsed="0.000056"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:01.896588" elapsed="0.000040"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:01.896858" elapsed="0.000031"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:01.274290" elapsed="0.622764">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:33:01.897199" level="FAIL">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Switches In Topology</arg>
<arg>1</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:32:51.564212" elapsed="10.333122">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Starts mininet and verify if topology is in operational datastore.</doc>
<status status="FAIL" start="2026-04-17T03:32:48.816950" elapsed="13.080556">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<test id="s1-s7-t1" name="Add Delete Same Flow" line="23">
<doc>Iterate on add and delete flow until alien ID is found in Operational Datastore.</doc>
<status status="FAIL" start="2026-04-17T03:33:01.897613" elapsed="0.000626">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s7-t2" name="Add Multiple Flows" line="30">
<doc>Iterate on add and delete flow until alien ID is found in Operational Datastore.</doc>
<status status="FAIL" start="2026-04-17T03:33:01.898663" elapsed="0.000507">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Final Phase" type="TEARDOWN">
<kw name="Stop Mininet And Exit" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:33:01.908304" elapsed="0.000217"/>
</kw>
<status status="PASS" start="2026-04-17T03:33:01.907936" elapsed="0.000633"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:01.907908" elapsed="0.000689"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:01.912209" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:01.908747" elapsed="0.003530"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:02.064185" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 2 links
..
*** Stopping 1 switches
s1 
*** Stopping 2 hosts
h1 h2 
*** Done
completed in 10.664 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${TOOLS_SYSTEM_PROMPT}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:01.912471" elapsed="0.151885"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:02.064707" elapsed="0.000289"/>
</kw>
<arg>${mininet_conn_id}</arg>
<doc>Stops Mininet and exits session ${mininet_conn}</doc>
<status status="PASS" start="2026-04-17T03:33:01.907579" elapsed="0.157489"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:02.065316" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:33:02.065235" elapsed="0.000250"/>
</kw>
<doc>Stops mininet.</doc>
<status status="PASS" start="2026-04-17T03:33:01.899861" elapsed="0.165684"/>
</kw>
<doc>Test suite for bug 6917 validation.</doc>
<status status="FAIL" start="2026-04-17T03:32:48.740272" elapsed="13.325313">Suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</suite>
<suite id="s1-s8" name="7258" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Bug_Validation/7258.robot">
<kw name="Initialization Phase" type="SETUP">
<kw name="Start Mininet Single Controller" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:02.146520" level="INFO">Clear any existing mininet</msg>
<arg>Clear any existing mininet</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:02.146189" elapsed="0.000393"/>
</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-04-17T03:33:02.149198" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:02.148845" elapsed="0.000421"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:02.148817" elapsed="0.000484"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:02.149679" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:33:02.149791" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:33:02.149500" elapsed="0.000319"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:02.150403" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:33:02.149978" elapsed="0.000475"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:02.151002" level="INFO">${conn_id} = 28</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-04-17T03:33:02.150614" elapsed="0.000418"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:33:02.151923" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:02.152001" 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-04-17T03:33:02.151631" elapsed="0.000395"/>
</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-04-17T03:33:02.152239" elapsed="0.000362"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:02.153484" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:02.525923" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:32:51 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:02.153144" elapsed="0.372964"/>
</kw>
<msg time="2026-04-17T03:33:02.526244" 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="PASS" start="2026-04-17T03:33:02.152771" elapsed="0.373691"/>
</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="PASS" start="2026-04-17T03:33:02.151260" elapsed="0.375352"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:33:02.527225" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:33:03.665288" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:33:03.665713" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:33:03.665823" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:33:02.526917" elapsed="1.138967"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:03.666363" elapsed="0.000550"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:03.668155" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:03.667376" elapsed="0.000913"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:03.668724" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:33:03.668505" elapsed="0.000297"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:03.668452" elapsed="0.000385"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:33:03.669087" elapsed="0.000050"/>
</return>
<status status="PASS" start="2026-04-17T03:33:03.668921" elapsed="0.000268"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:03.668897" elapsed="0.000331"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:03.669282" elapsed="0.000021"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:33:03.673230" elapsed="0.000559"/>
</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="PASS" start="2026-04-17T03:33:03.674047" elapsed="0.000251"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:03.674552" elapsed="0.000157"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:33:03.669809" elapsed="0.004984"/>
</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="PASS" start="2026-04-17T03:33:02.148317" elapsed="1.526622"/>
</kw>
<msg time="2026-04-17T03:33:03.675026" 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="PASS" start="2026-04-17T03:33:02.147653" elapsed="1.527458"/>
</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="PASS" start="2026-04-17T03:33:02.147119" elapsed="1.528115"/>
</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-04-17T03:33:03.678477" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:03.677996" elapsed="0.000576"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:03.677964" elapsed="0.000646"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:03.679079" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:33:03.679241" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:33:03.678857" elapsed="0.000426"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:03.680218" 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.171.160" 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-04-17T03:33:03.679548" elapsed="0.000743"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:03.680990" level="INFO">${conn_id} = 30</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-04-17T03:33:03.680591" elapsed="0.000426"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:33:03.681947" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:03.682029" 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-04-17T03:33:03.681641" elapsed="0.000413"/>
</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-04-17T03:33:03.682220" elapsed="0.000362"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:03.683487" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:04.014314" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:02 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:03.683128" elapsed="0.331393"/>
</kw>
<msg time="2026-04-17T03:33:04.014624" 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="PASS" start="2026-04-17T03:33:03.682757" elapsed="0.331963"/>
</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="PASS" start="2026-04-17T03:33:03.681251" elapsed="0.333589"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:33:04.015461" 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-04-17T03:33:04.048248" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:33:04.048555" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:33:04.048659" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:33:04.015138" elapsed="0.033572"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:04.049092" elapsed="0.000557"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:04.050841" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:04.050135" elapsed="0.000808"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:04.051549" elapsed="0.000047"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:33:04.051132" elapsed="0.000544"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:04.051077" elapsed="0.000653"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:33:04.052102" elapsed="0.000060"/>
</return>
<status status="PASS" start="2026-04-17T03:33:04.051853" elapsed="0.000383"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:04.051817" elapsed="0.000474"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:04.052367" elapsed="0.000066"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:33:04.056147" elapsed="0.000505"/>
</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="PASS" start="2026-04-17T03:33:04.056889" elapsed="0.000227"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:04.057323" elapsed="0.000180"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:33:04.052904" elapsed="0.004677"/>
</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="PASS" start="2026-04-17T03:33:03.677184" elapsed="0.380529"/>
</kw>
<msg time="2026-04-17T03:33:04.057788" 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="PASS" start="2026-04-17T03:33:03.676294" elapsed="0.381564"/>
</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="PASS" start="2026-04-17T03:33:03.675548" elapsed="0.382423"/>
</kw>
<arg>${mininet}</arg>
<status status="PASS" start="2026-04-17T03:33:02.146800" elapsed="1.911248"/>
</kw>
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:04.064810" level="INFO">${tools_connection} = 32</msg>
<var>${tools_connection}</var>
<arg>${ip_address}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:33:04.064258" elapsed="0.000580"/>
</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-04-17T03:33:04.066584" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:04.066665" 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-04-17T03:33:04.066267" elapsed="0.000423"/>
</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-04-17T03:33:04.066851" elapsed="0.000332"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:04.068088" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:04.426774" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:03 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:04.067762" elapsed="0.359173"/>
</kw>
<msg time="2026-04-17T03:33:04.427030" 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="PASS" start="2026-04-17T03:33:04.067354" elapsed="0.359767"/>
</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="PASS" start="2026-04-17T03:33:04.065810" elapsed="0.361448"/>
</kw>
<msg time="2026-04-17T03:33:04.427322" 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="PASS" start="2026-04-17T03:33:04.065370" elapsed="0.362108"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:33:04.065027" elapsed="0.362538"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-04-17T03:33:04.427619" elapsed="0.000044"/>
</return>
<msg time="2026-04-17T03:33:04.427845" level="INFO">${mininet_conn_id} = 32</msg>
<var>${mininet_conn_id}</var>
<arg>ip_address=${mininet}</arg>
<arg>timeout=${timeout}</arg>
<doc>Open a connection to the tools system at ${ip_address} and return its identifier.</doc>
<status status="PASS" start="2026-04-17T03:33:04.063566" elapsed="0.364306"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:33:04.428665" level="INFO">${mininet_conn_id} = 32</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-04-17T03:33:04.428194" elapsed="0.000516"/>
</kw>
<if>
<branch type="IF" condition="'${custom}' != '${EMPTY}'">
<kw name="Put File" owner="SSHLibrary">
<arg>${custom}</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:04.431051" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:04.428801" elapsed="0.002312"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:04.428775" elapsed="0.002366"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:04.431756" level="INFO">Start mininet --topo tree,1 to 10.30.170.85</msg>
<arg>Start mininet ${options} to ${controller}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:04.431362" elapsed="0.000452"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:04.434476" level="INFO">sudo mn --controller 'remote,ip=10.30.170.85,port=6633' --topo tree,1 --switch ovsk,protocols=OpenFlow13</msg>
<arg>sudo mn --controller 'remote,ip=${controller},port=${ofport}' ${options} --switch ovsk,protocols=OpenFlow${ofversion}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:04.432019" elapsed="0.002516"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:04.596246" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6633
*** Adding hosts:
h1 h2 
*** Adding switches:
s1 
*** Adding links:
(s1, h1) (s1, h2) 
*** Configuring hosts
h1 h2 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:04.434699" elapsed="0.161698"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:04.597097" level="INFO">Check OVS configuratiom</msg>
<arg>Check OVS configuratiom</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:04.596759" elapsed="0.000390"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:04.598311" level="INFO">sh ovs-vsctl show</msg>
<arg>sh ovs-vsctl show</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:04.597332" elapsed="0.001037"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:04.609678" level="INFO">e6f5c2d7-d554-440d-9b27-fed60334327f
    Bridge s1
        Controller "ptcp:6654"
        Controller "tcp:10.30.170.85:6633"
        fail_mode: secure
        Port s1
            Interface s1
                type: internal
        Port s1-eth1
            Interface s1-eth1
        Port s1-eth2
            Interface s1-eth2
    ovs_version: "2.17.11"
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:04.598552" elapsed="0.011192"/>
</kw>
<return>
<value>${mininet_conn_id}</value>
<status status="PASS" start="2026-04-17T03:33:04.609796" elapsed="0.000045"/>
</return>
<msg time="2026-04-17T03:33:04.610016" level="INFO">${mininet_conn_id} = 32</msg>
<var>${mininet_conn_id}</var>
<doc>Start Mininet with custom topology and connect to controller.</doc>
<status status="PASS" start="2026-04-17T03:33:02.143895" elapsed="2.466213"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:33:04.610659" level="INFO">${mininet_conn_id} = 32</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-04-17T03:33:04.610284" elapsed="0.000417"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:04.611207" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d08ec8bc50&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-04-17T03:33:04.610860" elapsed="0.000563"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:04.615123" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:04.816862" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:05.219345" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:05.221939" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:04.612460" elapsed="0.613588">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:05.226515" elapsed="0.000044"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:05.226845" elapsed="0.000033"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:05.227134" elapsed="0.000032"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:04.612175" elapsed="0.615146">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:06.234825" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:06.436657" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:06.839311" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:06.841453" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:06.229819" elapsed="0.614712">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:06.845031" elapsed="0.000045"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:06.845329" elapsed="0.000029"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:06.845582" elapsed="0.000026"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:06.228799" elapsed="0.616950">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:07.850910" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:08.052609" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:08.454734" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:08.457300" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:07.847050" elapsed="0.616421">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:08.464071" elapsed="0.000059"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:08.464515" elapsed="0.000045"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:08.464886" elapsed="0.000044"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:07.846546" elapsed="0.618597">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:09.471715" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:09.674093" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:10.076817" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:10.079171" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:09.466913" elapsed="0.617425">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:10.084972" elapsed="0.000063"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:10.085620" elapsed="0.000067"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:10.086073" elapsed="0.000049"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:09.466161" elapsed="0.620194">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:11.093000" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:11.295025" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:11.697675" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:11.699846" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:11.088375" elapsed="0.617144">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:11.706035" elapsed="0.000042"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:11.706344" elapsed="0.000031"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:11.706628" elapsed="0.000029"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:11.087519" elapsed="0.619294">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:12.713278" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:12.914996" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:13.317619" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:13.320311" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:12.708509" elapsed="0.618005">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:13.327179" elapsed="0.000065"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:13.327689" elapsed="0.000050"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:13.328235" elapsed="0.000078"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:12.707763" elapsed="0.621158">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:14.335435" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:14.537484" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:14.939699" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:14.942061" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:14.330618" elapsed="0.616645">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:14.947968" elapsed="0.000065"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:14.948482" elapsed="0.000052"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:14.948889" elapsed="0.000033"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:14.329898" elapsed="0.619181">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:33:14.949356" level="FAIL">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Switches In Topology</arg>
<arg>1</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:33:04.611597" elapsed="10.337948">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Starts mininet and verify if topology is in operational datastore.</doc>
<status status="FAIL" start="2026-04-17T03:33:02.143373" elapsed="12.806330">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<test id="s1-s8-t1" name="Add Alien Flow And Verify It Is In Operational DS" line="23">
<doc>Add flow with incorrect in-port format to generate alien ID</doc>
<status status="FAIL" start="2026-04-17T03:33:14.949812" elapsed="0.000859">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Final Phase" type="TEARDOWN">
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:14.955733" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:15.157298" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:15.559773" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:15.561860" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:14.952647" elapsed="0.612590">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<arg>RequestsLibrary.DELETE On Session</arg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:33:14.952035" elapsed="0.613343"/>
</kw>
<kw name="Stop Mininet And Exit" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:33:15.572320" elapsed="0.000252"/>
</kw>
<status status="PASS" start="2026-04-17T03:33:15.571941" elapsed="0.000686"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:15.571906" elapsed="0.000758"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:15.576341" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:15.572862" elapsed="0.003554"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:15.704924" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 2 links
..
*** Stopping 1 switches
s1 
*** Stopping 2 hosts
h1 h2 
*** Done
completed in 11.206 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${TOOLS_SYSTEM_PROMPT}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:15.576583" elapsed="0.128495"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:15.705354" elapsed="0.000224"/>
</kw>
<arg>${mininet_conn_id}</arg>
<doc>Stops Mininet and exits session ${mininet_conn}</doc>
<status status="PASS" start="2026-04-17T03:33:15.571486" elapsed="0.134161"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:15.705890" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:33:15.705806" elapsed="0.000178"/>
</kw>
<doc>Stops mininet.</doc>
<status status="PASS" start="2026-04-17T03:33:14.951568" elapsed="0.754472"/>
</kw>
<doc>Test suite for bug 6917 validation.</doc>
<status status="FAIL" start="2026-04-17T03:33:02.066399" elapsed="13.639676">Suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</suite>
<suite id="s1-s9" name="7335" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Bug_Validation/7335.robot">
<kw name="Initialization Phase" type="SETUP">
<kw name="Start Mininet Single Controller" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:15.790840" level="INFO">Clear any existing mininet</msg>
<arg>Clear any existing mininet</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:15.790545" elapsed="0.000433"/>
</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-04-17T03:33:15.793417" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:15.793089" elapsed="0.000388"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:15.793063" elapsed="0.000440"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:15.793830" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:33:15.793940" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:33:15.793652" elapsed="0.000315"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:15.794590" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:33:15.794116" elapsed="0.000524"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:15.795172" level="INFO">${conn_id} = 33</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-04-17T03:33:15.794798" elapsed="0.000401"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:33:15.796114" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:15.796192" 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-04-17T03:33:15.795823" 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-04-17T03:33:15.796374" elapsed="0.000347"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:15.797584" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:16.168653" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:04 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:15.797251" elapsed="0.371579"/>
</kw>
<msg time="2026-04-17T03:33:16.168917" 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="PASS" start="2026-04-17T03:33:15.796890" elapsed="0.372111"/>
</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="PASS" start="2026-04-17T03:33:15.795431" elapsed="0.373686"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:33:16.169650" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:33:17.306088" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:33:17.306509" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:33:17.306696" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:33:16.169370" elapsed="1.137408"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:17.307476" elapsed="0.000649"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:17.309797" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:17.308955" elapsed="0.001012"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:17.310558" elapsed="0.000049"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:33:17.310195" elapsed="0.000491"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:17.310112" elapsed="0.000736"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:33:17.311341" elapsed="0.000101"/>
</return>
<status status="PASS" start="2026-04-17T03:33:17.311032" elapsed="0.000493"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:17.310976" elapsed="0.000647"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:17.311725" elapsed="0.000035"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:33:17.317968" elapsed="0.000869"/>
</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="PASS" start="2026-04-17T03:33:17.319348" elapsed="0.000435"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:17.320010" elapsed="0.000110"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:33:17.312531" elapsed="0.007647"/>
</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="PASS" start="2026-04-17T03:33:15.792587" elapsed="1.527691"/>
</kw>
<msg time="2026-04-17T03:33:17.320339" 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="PASS" start="2026-04-17T03:33:15.791996" elapsed="1.528418"/>
</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="PASS" start="2026-04-17T03:33:15.791526" elapsed="1.528975"/>
</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-04-17T03:33:17.322702" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:17.322344" elapsed="0.000429"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:17.322323" elapsed="0.000480"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:17.323177" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:33:17.323290" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:33:17.323002" elapsed="0.000315"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:17.323909" 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.171.160" 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-04-17T03:33:17.323494" elapsed="0.000465"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:17.324515" level="INFO">${conn_id} = 35</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-04-17T03:33:17.324120" elapsed="0.000423"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:33:17.325455" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:17.325536" 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-04-17T03:33:17.325146" elapsed="0.000421"/>
</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-04-17T03:33:17.325732" elapsed="0.000335"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:17.326984" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:17.680662" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:16 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:17.326658" elapsed="0.354236"/>
</kw>
<msg time="2026-04-17T03:33:17.680994" 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="PASS" start="2026-04-17T03:33:17.326239" elapsed="0.354840"/>
</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="PASS" start="2026-04-17T03:33:17.324783" elapsed="0.356522"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:33:17.681891" 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-04-17T03:33:17.724495" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:33:17.724778" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:33:17.724857" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:33:17.681602" elapsed="0.043317"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:17.725291" elapsed="0.000425"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:17.726491" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:17.726038" elapsed="0.000519"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:17.726877" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:33:17.726676" elapsed="0.000318"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:17.726641" elapsed="0.000388"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:33:17.727329" elapsed="0.000048"/>
</return>
<status status="PASS" start="2026-04-17T03:33:17.727106" elapsed="0.000351"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:17.727083" elapsed="0.000411"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:17.727543" elapsed="0.000021"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:33:17.731257" elapsed="0.000577"/>
</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="PASS" start="2026-04-17T03:33:17.732142" elapsed="0.000319"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:17.732683" elapsed="0.000165"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:33:17.728033" elapsed="0.004894"/>
</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="PASS" start="2026-04-17T03:33:17.321844" elapsed="0.411220"/>
</kw>
<msg time="2026-04-17T03:33:17.733145" 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="PASS" start="2026-04-17T03:33:17.321194" elapsed="0.412031"/>
</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="PASS" start="2026-04-17T03:33:17.320712" elapsed="0.412626"/>
</kw>
<arg>${mininet}</arg>
<status status="PASS" start="2026-04-17T03:33:15.791196" elapsed="1.942244"/>
</kw>
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:17.739203" level="INFO">${tools_connection} = 37</msg>
<var>${tools_connection}</var>
<arg>${ip_address}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:33:17.738645" elapsed="0.000596"/>
</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-04-17T03:33:17.741122" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:17.741202" 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-04-17T03:33:17.740812" elapsed="0.000413"/>
</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-04-17T03:33:17.741403" elapsed="0.000336"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:17.742699" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:18.066075" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:17 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:17.742307" elapsed="0.323960"/>
</kw>
<msg time="2026-04-17T03:33:18.066363" 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="PASS" start="2026-04-17T03:33:17.741907" elapsed="0.324567"/>
</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="PASS" start="2026-04-17T03:33:17.740339" elapsed="0.326354"/>
</kw>
<msg time="2026-04-17T03:33:18.066746" 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="PASS" start="2026-04-17T03:33:17.739917" elapsed="0.326878"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:33:17.739535" elapsed="0.327365"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-04-17T03:33:18.066955" elapsed="0.000044"/>
</return>
<msg time="2026-04-17T03:33:18.067183" level="INFO">${mininet_conn_id} = 37</msg>
<var>${mininet_conn_id}</var>
<arg>ip_address=${mininet}</arg>
<arg>timeout=${timeout}</arg>
<doc>Open a connection to the tools system at ${ip_address} and return its identifier.</doc>
<status status="PASS" start="2026-04-17T03:33:17.738128" elapsed="0.329083"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:33:18.068244" level="INFO">${mininet_conn_id} = 37</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-04-17T03:33:18.067603" elapsed="0.000698"/>
</kw>
<if>
<branch type="IF" condition="'${custom}' != '${EMPTY}'">
<kw name="Put File" owner="SSHLibrary">
<arg>${custom}</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:18.070612" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:18.068430" elapsed="0.002242"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:18.068399" elapsed="0.002299"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:18.071217" level="INFO">Start mininet --topo tree,1 to 10.30.170.85</msg>
<arg>Start mininet ${options} to ${controller}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:18.070905" elapsed="0.000360"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:18.073934" level="INFO">sudo mn --controller 'remote,ip=10.30.170.85,port=6633' --topo tree,1 --switch ovsk,protocols=OpenFlow13</msg>
<arg>sudo mn --controller 'remote,ip=${controller},port=${ofport}' ${options} --switch ovsk,protocols=OpenFlow${ofversion}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:18.071448" elapsed="0.002555"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:18.243130" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6633
*** Adding hosts:
h1 h2 
*** Adding switches:
s1 
*** Adding links:
(s1, h1) (s1, h2) 
*** Configuring hosts
h1 h2 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:18.074207" elapsed="0.169092"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:18.244056" level="INFO">Check OVS configuratiom</msg>
<arg>Check OVS configuratiom</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:18.243682" elapsed="0.000425"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:18.245566" level="INFO">sh ovs-vsctl show</msg>
<arg>sh ovs-vsctl show</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:18.244288" elapsed="0.001334"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:18.259266" level="INFO">e6f5c2d7-d554-440d-9b27-fed60334327f
    Bridge s1
        Controller "ptcp:6654"
        Controller "tcp:10.30.170.85:6633"
        fail_mode: secure
        Port s1-eth1
            Interface s1-eth1
        Port s1
            Interface s1
                type: internal
        Port s1-eth2
            Interface s1-eth2
    ovs_version: "2.17.11"
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:18.245781" elapsed="0.013589"/>
</kw>
<return>
<value>${mininet_conn_id}</value>
<status status="PASS" start="2026-04-17T03:33:18.259459" elapsed="0.000061"/>
</return>
<msg time="2026-04-17T03:33:18.260244" level="INFO">${mininet_conn_id} = 37</msg>
<var>${mininet_conn_id}</var>
<doc>Start Mininet with custom topology and connect to controller.</doc>
<status status="PASS" start="2026-04-17T03:33:15.788356" elapsed="2.471919"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:33:18.260963" level="INFO">${mininet_conn_id} = 37</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-04-17T03:33:18.260545" elapsed="0.000467"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:18.261561" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d08ead96d0&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-04-17T03:33:18.261174" elapsed="0.000616"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:18.265597" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:18.467012" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:18.869181" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:18.871008" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:18.262943" elapsed="0.613285">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:18.876989" elapsed="0.000064"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:18.877523" elapsed="0.000055"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:18.877933" elapsed="0.000045"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:18.262586" elapsed="0.615624">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:19.885753" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:20.087865" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:20.489994" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:20.492577" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:19.880140" elapsed="0.617964">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:20.498764" elapsed="0.000064"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:20.499228" elapsed="0.000047"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:20.499653" elapsed="0.000047"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:19.879259" elapsed="0.620674">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:21.506427" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:21.708355" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:22.110732" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:22.113095" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:21.501622" elapsed="0.616654">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:22.118924" elapsed="0.000060"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:22.119432" elapsed="0.000053"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:22.119846" elapsed="0.000047"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:21.500902" elapsed="0.619226">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:23.127014" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:23.329565" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:23.731641" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:23.734341" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:23.122076" elapsed="0.617538">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:23.740323" elapsed="0.000103"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:23.740889" elapsed="0.000058"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:23.741318" elapsed="0.000143"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:23.121317" elapsed="0.620396">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:24.749174" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:24.950907" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:25.353301" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:25.355909" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:24.743725" elapsed="0.617706">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:25.362071" elapsed="0.000065"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:25.362697" elapsed="0.000056"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:25.363132" elapsed="0.000046"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:24.742792" elapsed="0.620504">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:26.370143" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:26.571549" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:26.975225" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:26.977609" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:26.365054" elapsed="0.617246">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:26.982797" elapsed="0.000045"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:26.983114" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:26.983436" elapsed="0.000036"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:26.364259" elapsed="0.619376">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:27.990247" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:28.191887" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:28.594438" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:28.596796" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:27.985548" elapsed="0.616268">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:28.602455" elapsed="0.000062"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:28.602918" elapsed="0.000047"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:28.603323" elapsed="0.000048"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:27.984766" elapsed="0.618920">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:33:28.603909" level="FAIL">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Switches In Topology</arg>
<arg>1</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:33:18.261974" elapsed="10.342148">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Starts mininet and verify if topology is in operational datastore.</doc>
<status status="FAIL" start="2026-04-17T03:33:15.787868" elapsed="12.816446">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<test id="s1-s9-t1" name="Add Flow And Check It Is In Operational DS" line="24">
<doc>Add flow match IP and Ethertype IP</doc>
<status status="FAIL" start="2026-04-17T03:33:28.604442" elapsed="0.000736">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s9-t2" name="Update Flow With Invalid Match And Check It Is Not In Operational DS" line="38">
<doc>Update flow removing Ethertype, this should remove flow from switch and operational DS</doc>
<status status="FAIL" start="2026-04-17T03:33:28.605513" elapsed="0.000751">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Final Phase" type="TEARDOWN">
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:28.611330" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:28.812772" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:29.215988" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:29.218337" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:28.607962" elapsed="0.616731">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<arg>RequestsLibrary.DELETE On Session</arg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:33:28.607321" elapsed="0.617567"/>
</kw>
<kw name="Stop Mininet And Exit" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:33:29.230669" elapsed="0.000170"/>
</kw>
<status status="PASS" start="2026-04-17T03:33:29.230357" elapsed="0.000527"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:29.230331" elapsed="0.000580"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:29.234926" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:29.231053" elapsed="0.003960"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:29.361519" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 2 links
..
*** Stopping 1 switches
s1 
*** Stopping 2 hosts
h1 h2 
*** Done
completed in 11.230 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${TOOLS_SYSTEM_PROMPT}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:29.235224" elapsed="0.126433"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:29.361917" elapsed="0.000208"/>
</kw>
<arg>${mininet_conn_id}</arg>
<doc>Stops Mininet and exits session ${mininet_conn}</doc>
<status status="PASS" start="2026-04-17T03:33:29.230011" elapsed="0.132183"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:29.362451" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:33:29.362352" elapsed="0.000168"/>
</kw>
<doc>Stops mininet.</doc>
<status status="PASS" start="2026-04-17T03:33:28.606939" elapsed="0.755638"/>
</kw>
<doc>Test suite for bug 6917 validation.</doc>
<status status="FAIL" start="2026-04-17T03:33:15.706996" elapsed="13.655615">Suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</suite>
<suite id="s1-s10" name="7349" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Bug_Validation/7349.robot">
<kw name="Initialization Phase" type="SETUP">
<kw name="Start Mininet Single Controller" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:29.444597" level="INFO">Clear any existing mininet</msg>
<arg>Clear any existing mininet</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:29.444276" elapsed="0.000381"/>
</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-04-17T03:33:29.447073" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:29.446758" elapsed="0.000374"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:29.446733" elapsed="0.000426"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:29.447505" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:33:29.447614" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:33:29.447325" elapsed="0.000316"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:29.448225" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:33:29.447834" elapsed="0.000438"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:29.448829" level="INFO">${conn_id} = 38</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-04-17T03:33:29.448453" elapsed="0.000402"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:33:29.449721" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:29.449889" 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-04-17T03:33:29.449437" elapsed="0.000478"/>
</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-04-17T03:33:29.450077" elapsed="0.000390"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:29.451376" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:29.807212" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:17 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:29.451053" elapsed="0.356423"/>
</kw>
<msg time="2026-04-17T03:33:29.807626" 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="PASS" start="2026-04-17T03:33:29.450674" elapsed="0.357139"/>
</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="PASS" start="2026-04-17T03:33:29.449074" elapsed="0.358942"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:33:29.808952" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:33:30.955246" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:33:30.955645" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:33:30.955755" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:33:29.808470" elapsed="1.147394"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:30.956325" elapsed="0.000536"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:30.958005" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:30.957314" elapsed="0.000819"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:30.958643" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:33:30.958308" elapsed="0.000445"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:30.958258" elapsed="0.000551"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:33:30.959206" elapsed="0.000068"/>
</return>
<status status="PASS" start="2026-04-17T03:33:30.958956" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:30.958919" elapsed="0.000519"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:30.959539" elapsed="0.000034"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:33:30.964804" elapsed="0.000349"/>
</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="PASS" start="2026-04-17T03:33:30.965323" elapsed="0.000183"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:30.965658" elapsed="0.000100"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:33:30.960281" elapsed="0.005538"/>
</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="PASS" start="2026-04-17T03:33:29.446240" elapsed="1.519686"/>
</kw>
<msg time="2026-04-17T03:33:30.965984" 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="PASS" start="2026-04-17T03:33:29.445662" elapsed="1.520379"/>
</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="PASS" start="2026-04-17T03:33:29.445194" elapsed="1.520995"/>
</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-04-17T03:33:30.968297" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:30.967992" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:30.967972" elapsed="0.000426"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:30.968705" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:33:30.968814" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:33:30.968561" elapsed="0.000280"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:30.969403" 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.171.160" 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-04-17T03:33:30.968994" elapsed="0.000460"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:30.969999" level="INFO">${conn_id} = 40</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-04-17T03:33:30.969609" elapsed="0.000417"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:33:30.970907" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:30.970988" 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-04-17T03:33:30.970614" elapsed="0.000398"/>
</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-04-17T03:33:30.971168" elapsed="0.000351"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:30.972406" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:31.344308" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:29 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:30.972066" elapsed="0.372463"/>
</kw>
<msg time="2026-04-17T03:33:31.344631" 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="PASS" start="2026-04-17T03:33:30.971704" elapsed="0.373035"/>
</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="PASS" start="2026-04-17T03:33:30.970245" elapsed="0.374626"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:33:31.345433" 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-04-17T03:33:31.378100" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:33:31.378458" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:33:31.378573" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:33:31.345131" elapsed="0.033500"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:31.379077" elapsed="0.000600"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:31.381044" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:31.380192" elapsed="0.000960"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:31.381747" elapsed="0.000043"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:33:31.381368" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:31.381295" elapsed="0.000631"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:33:31.382316" elapsed="0.000103"/>
</return>
<status status="PASS" start="2026-04-17T03:33:31.382054" elapsed="0.000451"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:31.382017" elapsed="0.000548"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:31.382649" elapsed="0.000034"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:33:31.388806" elapsed="0.000715"/>
</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="PASS" start="2026-04-17T03:33:31.389791" elapsed="0.000176"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:31.390120" elapsed="0.000106"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:33:31.383438" elapsed="0.006844"/>
</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="PASS" start="2026-04-17T03:33:30.967477" elapsed="0.422930"/>
</kw>
<msg time="2026-04-17T03:33:31.390468" 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="PASS" start="2026-04-17T03:33:30.966882" elapsed="0.423644"/>
</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="PASS" start="2026-04-17T03:33:30.966407" elapsed="0.424215"/>
</kw>
<arg>${mininet}</arg>
<status status="PASS" start="2026-04-17T03:33:29.444878" elapsed="1.945824"/>
</kw>
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:31.395623" level="INFO">${tools_connection} = 42</msg>
<var>${tools_connection}</var>
<arg>${ip_address}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:33:31.395214" elapsed="0.000437"/>
</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-04-17T03:33:31.397533" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:31.397613" 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-04-17T03:33:31.397204" elapsed="0.000451"/>
</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-04-17T03:33:31.397829" elapsed="0.000341"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:31.399051" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:31.852166" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:31 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:31.398728" elapsed="0.453696"/>
</kw>
<msg time="2026-04-17T03:33:31.852537" 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="PASS" start="2026-04-17T03:33:31.398346" elapsed="0.454296"/>
</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="PASS" start="2026-04-17T03:33:31.396721" elapsed="0.456065"/>
</kw>
<msg time="2026-04-17T03:33:31.852849" 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="PASS" start="2026-04-17T03:33:31.396229" elapsed="0.456677"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:33:31.395855" elapsed="0.457144"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-04-17T03:33:31.853070" elapsed="0.000056"/>
</return>
<msg time="2026-04-17T03:33:31.853337" level="INFO">${mininet_conn_id} = 42</msg>
<var>${mininet_conn_id}</var>
<arg>ip_address=${mininet}</arg>
<arg>timeout=${timeout}</arg>
<doc>Open a connection to the tools system at ${ip_address} and return its identifier.</doc>
<status status="PASS" start="2026-04-17T03:33:31.394738" elapsed="0.458635"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:33:31.854397" level="INFO">${mininet_conn_id} = 42</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-04-17T03:33:31.853833" elapsed="0.000617"/>
</kw>
<if>
<branch type="IF" condition="'${custom}' != '${EMPTY}'">
<kw name="Put File" owner="SSHLibrary">
<arg>${custom}</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:31.857266" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:31.854555" elapsed="0.002782"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:31.854526" elapsed="0.002844"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:31.858111" level="INFO">Start mininet --topo tree,1 to 10.30.170.85</msg>
<arg>Start mininet ${options} to ${controller}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:31.857612" elapsed="0.000555"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:31.861322" level="INFO">sudo mn --controller 'remote,ip=10.30.170.85,port=6633' --topo tree,1 --switch ovsk,protocols=OpenFlow13</msg>
<arg>sudo mn --controller 'remote,ip=${controller},port=${ofport}' ${options} --switch ovsk,protocols=OpenFlow${ofversion}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:31.858373" elapsed="0.003033"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:32.019649" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6633
*** Adding hosts:
h1 h2 
*** Adding switches:
s1 
*** Adding links:
(s1, h1) (s1, h2) 
*** Configuring hosts
h1 h2 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:31.861692" elapsed="0.158129"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:32.020648" level="INFO">Check OVS configuratiom</msg>
<arg>Check OVS configuratiom</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:32.020231" elapsed="0.000490"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:32.022179" level="INFO">sh ovs-vsctl show</msg>
<arg>sh ovs-vsctl show</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:32.020898" elapsed="0.001341"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:32.032341" level="INFO">e6f5c2d7-d554-440d-9b27-fed60334327f
    Bridge s1
        Controller "tcp:10.30.170.85:6633"
        Controller "ptcp:6654"
        fail_mode: secure
        Port s1-eth2
            Interface s1-eth2
        Port s1-eth1
            Interface s1-eth1
        Port s1
            Interface s1
                type: internal
    ovs_version: "2.17.11"
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:32.022427" elapsed="0.010039"/>
</kw>
<return>
<value>${mininet_conn_id}</value>
<status status="PASS" start="2026-04-17T03:33:32.032539" elapsed="0.000076"/>
</return>
<msg time="2026-04-17T03:33:32.032860" level="INFO">${mininet_conn_id} = 42</msg>
<var>${mininet_conn_id}</var>
<doc>Start Mininet with custom topology and connect to controller.</doc>
<status status="PASS" start="2026-04-17T03:33:29.441897" elapsed="2.590991"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:33:32.033555" level="INFO">${mininet_conn_id} = 42</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-04-17T03:33:32.033111" elapsed="0.000488"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:32.034125" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d08e9243d0&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-04-17T03:33:32.033760" elapsed="0.000549"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:32.038062" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:32.239704" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:32.642812" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:32.646192" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:32.035364" elapsed="0.616659">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:32.652759" elapsed="0.000070"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:32.653404" elapsed="0.000026"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:32.653610" elapsed="0.000028"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:32.035085" elapsed="0.618714">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:33.660712" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:33.862939" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:34.265508" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:34.267948" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:33.655690" elapsed="0.617524">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:34.273838" elapsed="0.000060"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:34.274294" elapsed="0.000046"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:34.274712" elapsed="0.000045"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:33.654795" elapsed="0.620188">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:35.282065" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:35.485972" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:35.889068" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:35.891946" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:35.276982" elapsed="0.618596">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:35.896084" elapsed="0.000047"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:35.896437" elapsed="0.000034"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:35.896714" elapsed="0.000032"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:35.276100" elapsed="0.620816">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:36.904207" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:37.105728" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:37.508267" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:37.511298" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:36.898767" elapsed="0.617931">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:37.517129" elapsed="0.000043"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:37.517446" elapsed="0.000031"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:37.517702" elapsed="0.000028"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:36.897904" elapsed="0.620007">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:38.523461" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:38.725221" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:39.127571" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:39.129883" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:38.519361" elapsed="0.616209">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:39.135967" elapsed="0.000034"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:39.136186" elapsed="0.000022"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:39.136374" elapsed="0.000037"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:38.518820" elapsed="0.617712">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:40.143495" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:40.345083" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:40.747902" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:40.750309" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:40.138871" elapsed="0.616882">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:40.756410" elapsed="0.000063"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:40.756783" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:40.757050" elapsed="0.000030"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:40.137984" elapsed="0.619252">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:41.762218" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:41.963782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:42.365545" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:42.368020" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:41.758522" elapsed="0.614712">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:42.373687" elapsed="0.000043"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:42.373990" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:42.374298" elapsed="0.000040"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:41.757985" elapsed="0.616529">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:33:42.374659" level="FAIL">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Switches In Topology</arg>
<arg>1</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:33:32.034504" elapsed="10.340298">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Starts mininet and verify if topology is in operational datastore.</doc>
<status status="FAIL" start="2026-04-17T03:33:29.441412" elapsed="12.933541">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<test id="s1-s10-t1" name="Add Flow And Check It Is In Operational DS" line="24">
<doc>Add flow match IP and Ethertype IP</doc>
<status status="FAIL" start="2026-04-17T03:33:42.375059" elapsed="0.000662">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s10-t2" name="Delete and Add Flow Same Match With Different ID" line="38">
<doc>Delete flow and add flow with same body and different ID. New ID should be shown in operational.</doc>
<status status="FAIL" start="2026-04-17T03:33:42.375987" elapsed="0.000737">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Final Phase" type="TEARDOWN">
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:42.381302" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:42.582561" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:42.984881" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:42.987596" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:42.378242" elapsed="0.614400">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<arg>RequestsLibrary.DELETE On Session</arg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:33:42.377682" elapsed="0.615105"/>
</kw>
<kw name="Stop Mininet And Exit" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:33:43.000632" elapsed="0.000245"/>
</kw>
<status status="PASS" start="2026-04-17T03:33:43.000224" elapsed="0.000712"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:43.000184" elapsed="0.000795"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:43.004483" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:43.001271" elapsed="0.003305"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:43.144925" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 2 links
..
*** Stopping 1 switches
s1 
*** Stopping 2 hosts
h1 h2 
*** Done
completed in 11.223 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${TOOLS_SYSTEM_PROMPT}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:43.004759" elapsed="0.140351"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:43.145410" elapsed="0.000228"/>
</kw>
<arg>${mininet_conn_id}</arg>
<doc>Stops Mininet and exits session ${mininet_conn}</doc>
<status status="PASS" start="2026-04-17T03:33:42.999780" elapsed="0.145927"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:43.145953" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:33:43.145872" elapsed="0.000159"/>
</kw>
<doc>Stops mininet.</doc>
<status status="PASS" start="2026-04-17T03:33:42.377275" elapsed="0.768811"/>
</kw>
<doc>Test suite for bug 6917 validation.</doc>
<status status="FAIL" start="2026-04-17T03:33:29.363349" elapsed="13.782773">Suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</suite>
<suite id="s1-s11" name="8723" source="/w/workspace/openflowplugin-csit-1node-flow-services-all-vanadium/test/csit/suites/openflowplugin/Bug_Validation/8723.robot">
<kw name="Initialization Phase" type="SETUP">
<kw name="Start Mininet Single Controller" owner="MininetKeywords">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:43.229016" level="INFO">Clear any existing mininet</msg>
<arg>Clear any existing mininet</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:43.228703" elapsed="0.000377"/>
</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-04-17T03:33:43.231800" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:43.231483" elapsed="0.000375"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:43.231457" elapsed="0.000430"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:43.232220" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:33:43.232330" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:33:43.232042" elapsed="0.000315"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:43.232907" level="INFO">Attempting to execute command "sudo mn -c" on remote system "10.30.171.160" 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-04-17T03:33:43.232525" elapsed="0.000428"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:43.233504" level="INFO">${conn_id} = 43</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-04-17T03:33:43.233110" elapsed="0.000420"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:33:43.234374" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:43.234469" 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-04-17T03:33:43.234089" elapsed="0.000404"/>
</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-04-17T03:33:43.234649" elapsed="0.000378"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:43.235902" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:43.621318" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:31 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:43.235572" elapsed="0.385988"/>
</kw>
<msg time="2026-04-17T03:33:43.621668" 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="PASS" start="2026-04-17T03:33:43.235197" elapsed="0.386587"/>
</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="PASS" start="2026-04-17T03:33:43.233745" elapsed="0.388191"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:33:43.622847" level="INFO">Executing command 'sudo mn -c'.</msg>
<msg time="2026-04-17T03:33:44.812367" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-17T03:33:44.812805" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:33:44.812909" level="INFO">${stderr} = *** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec iv...</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="PASS" start="2026-04-17T03:33:43.622373" elapsed="1.190594"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:44.813466" elapsed="0.000584"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:44.815277" level="INFO">*** Removing excess controllers/ofprotocols/ofdatapaths/pings/noxes
killall controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
killall -9 controller ofprotocol ofdatapath ping nox_corelt-nox_core ovs-openflowd ovs-controllerovs-testcontroller udpbwtest mnexec ivs ryu-manager 2&gt; /dev/null
pkill -9 -f "sudo mnexec"
*** Removing junk from /tmp
rm -f /tmp/vconn* /tmp/vlogs* /tmp/*.out /tmp/*.log
*** Removing old X11 tunnels
*** Removing excess kernel datapaths
ps ax | egrep -o 'dp[0-9]+' | sed 's/dp/nl:/'
***  Removing OVS datapaths
ovs-vsctl --timeout=1 list-br
ovs-vsctl --timeout=1 list-br
*** Removing all links of the pattern foo-ethX
ip link show | egrep -o '([-_.[:alnum:]]+-eth[[:digit:]]+)'
ip link show
*** Killing stale mininet node processes
pkill -9 -f mininet:
*** Shutting down stale tunnels
pkill -9 -f Tunnel=Ethernet
pkill -9 -f .ssh/mn
rm -f ~/.ssh/mn/*
*** Cleanup complete.</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:44.814570" elapsed="0.000870"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:44.815912" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:33:44.815617" elapsed="0.000406"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:44.815567" elapsed="0.000508"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:33:44.816501" elapsed="0.000108"/>
</return>
<status status="PASS" start="2026-04-17T03:33:44.816194" elapsed="0.000497"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:44.816158" elapsed="0.000605"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:44.816853" elapsed="0.000034"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:33:44.821656" elapsed="0.000365"/>
</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="PASS" start="2026-04-17T03:33:44.822191" elapsed="0.000173"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:44.822533" elapsed="0.000105"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:33:44.817606" elapsed="0.005086"/>
</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="PASS" start="2026-04-17T03:33:43.230967" elapsed="1.591819"/>
</kw>
<msg time="2026-04-17T03:33:44.822844" 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="PASS" start="2026-04-17T03:33:43.230298" elapsed="1.592603"/>
</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="PASS" start="2026-04-17T03:33:43.229768" elapsed="1.593213"/>
</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-04-17T03:33:44.825049" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:44.824748" elapsed="0.000360"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:44.824728" elapsed="0.000405"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:44.825439" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-04-17T03:33:44.825582" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-04-17T03:33:44.825283" elapsed="0.000338"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:44.826186" 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.171.160" 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-04-17T03:33:44.825791" elapsed="0.000443"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:44.826778" level="INFO">${conn_id} = 45</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-04-17T03:33:44.826405" elapsed="0.000400"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-17T03:33:44.827667" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:44.827825" 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-04-17T03:33:44.827370" elapsed="0.000480"/>
</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-04-17T03:33:44.828009" elapsed="0.000323"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:44.829203" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:45.163653" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:43 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:44.828887" elapsed="0.334925"/>
</kw>
<msg time="2026-04-17T03:33:45.163921" 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="PASS" start="2026-04-17T03:33:44.828531" elapsed="0.335566"/>
</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="PASS" start="2026-04-17T03:33:44.827022" elapsed="0.337205"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-17T03:33:45.164756" 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-04-17T03:33:45.197848" level="INFO">Command exited with return code -1.</msg>
<msg time="2026-04-17T03:33:45.198120" level="INFO">${stdout} = </msg>
<msg time="2026-04-17T03:33:45.198181" level="INFO">${stderr} = </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="PASS" start="2026-04-17T03:33:45.164503" elapsed="0.033709"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:45.198565" elapsed="0.000424"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:45.199811" level="INFO"/>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:45.199327" elapsed="0.000545"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:45.200234" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-04-17T03:33:45.200028" elapsed="0.000281"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:45.199991" elapsed="0.000357"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="PASS" start="2026-04-17T03:33:45.200631" elapsed="0.000053"/>
</return>
<status status="PASS" start="2026-04-17T03:33:45.200465" elapsed="0.000270"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:45.200440" elapsed="0.000337"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-17T03:33:45.200833" elapsed="0.000022"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<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-04-17T03:33:45.204464" elapsed="0.000484"/>
</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="PASS" start="2026-04-17T03:33:45.205185" elapsed="0.000256"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:45.205661" elapsed="0.000152"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-17T03:33:45.201298" elapsed="0.004598"/>
</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="PASS" start="2026-04-17T03:33:44.824224" elapsed="0.381804"/>
</kw>
<msg time="2026-04-17T03:33:45.206109" 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="PASS" start="2026-04-17T03:33:44.823657" elapsed="0.382530"/>
</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="PASS" start="2026-04-17T03:33:44.823177" elapsed="0.383127"/>
</kw>
<arg>${mininet}</arg>
<status status="PASS" start="2026-04-17T03:33:43.229324" elapsed="1.977085"/>
</kw>
<kw name="Open_Connection_To_Tools_System" owner="SSHKeywords">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-17T03:33:45.213259" level="INFO">${tools_connection} = 47</msg>
<var>${tools_connection}</var>
<arg>${ip_address}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-04-17T03:33:45.212714" elapsed="0.000585"/>
</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-04-17T03:33:45.215719" level="INFO">Length is 0.</msg>
<msg time="2026-04-17T03:33:45.215982" 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-04-17T03:33:45.215304" elapsed="0.000711"/>
</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-04-17T03:33:45.216227" elapsed="0.000469"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-17T03:33:45.217906" level="INFO">Logging into '10.30.171.160:22' as 'jenkins'.</msg>
<msg time="2026-04-17T03:33:45.594198" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Fri Apr 17 03:32:49 UTC 2026

  System load:  0.0                Processes:             108
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 5%                 IPv4 address for ens3: 10.30.171.160
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Apr 17 03:33:45 2026 from 10.30.170.118
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</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="PASS" start="2026-04-17T03:33:45.217464" elapsed="0.376891"/>
</kw>
<msg time="2026-04-17T03:33:45.594462" 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="PASS" start="2026-04-17T03:33:45.216931" elapsed="0.377612"/>
</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="PASS" start="2026-04-17T03:33:45.214679" elapsed="0.379975"/>
</kw>
<msg time="2026-04-17T03:33:45.594707" 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="PASS" start="2026-04-17T03:33:45.214068" elapsed="0.380687"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-04-17T03:33:45.213599" elapsed="0.381233"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-04-17T03:33:45.594883" elapsed="0.000039"/>
</return>
<msg time="2026-04-17T03:33:45.595090" level="INFO">${mininet_conn_id} = 47</msg>
<var>${mininet_conn_id}</var>
<arg>ip_address=${mininet}</arg>
<arg>timeout=${timeout}</arg>
<doc>Open a connection to the tools system at ${ip_address} and return its identifier.</doc>
<status status="PASS" start="2026-04-17T03:33:45.211945" elapsed="0.383171"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:33:45.595902" level="INFO">${mininet_conn_id} = 47</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-04-17T03:33:45.595467" elapsed="0.000479"/>
</kw>
<if>
<branch type="IF" condition="'${custom}' != '${EMPTY}'">
<kw name="Put File" owner="SSHLibrary">
<arg>${custom}</arg>
<doc>Uploads file(s) from the local machine to the remote machine.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:45.598137" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-04-17T03:33:45.596030" elapsed="0.002167"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:45.596006" elapsed="0.002218"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:45.598727" level="INFO">Start mininet --topo tree,1 to 10.30.170.85</msg>
<arg>Start mininet ${options} to ${controller}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:45.598411" elapsed="0.000365"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:45.601313" level="INFO">sudo mn --controller 'remote,ip=10.30.170.85,port=6633' --topo tree,1 --switch ovsk,protocols=OpenFlow13</msg>
<arg>sudo mn --controller 'remote,ip=${controller},port=${ofport}' ${options} --switch ovsk,protocols=OpenFlow${ofversion}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:45.598947" elapsed="0.002427"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:45.750789" level="INFO">[?2004l*** Creating network
*** Adding controller
Unable to contact the remote controller at 10.30.170.85:6633
*** Adding hosts:
h1 h2 
*** Adding switches:
s1 
*** Adding links:
(s1, h1) (s1, h2) 
*** Configuring hosts
h1 h2 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:45.601562" elapsed="0.149403"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-17T03:33:45.751741" level="INFO">Check OVS configuratiom</msg>
<arg>Check OVS configuratiom</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-17T03:33:45.751364" elapsed="0.000424"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:45.753176" level="INFO">sh ovs-vsctl show</msg>
<arg>sh ovs-vsctl show</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:45.751956" elapsed="0.001280"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:45.762783" level="INFO">e6f5c2d7-d554-440d-9b27-fed60334327f
    Bridge s1
        Controller "tcp:10.30.170.85:6633"
        Controller "ptcp:6654"
        fail_mode: secure
        Port s1
            Interface s1
                type: internal
        Port s1-eth1
            Interface s1-eth1
        Port s1-eth2
            Interface s1-eth2
    ovs_version: "2.17.11"
mininet&gt;</msg>
<arg>mininet&gt;</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:45.753430" elapsed="0.009503"/>
</kw>
<return>
<value>${mininet_conn_id}</value>
<status status="PASS" start="2026-04-17T03:33:45.763017" elapsed="0.000061"/>
</return>
<msg time="2026-04-17T03:33:45.763337" level="INFO">${mininet_conn_id} = 47</msg>
<var>${mininet_conn_id}</var>
<doc>Start Mininet with custom topology and connect to controller.</doc>
<status status="PASS" start="2026-04-17T03:33:43.226302" elapsed="2.537064"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-17T03:33:45.764027" level="INFO">${mininet_conn_id} = 47</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-04-17T03:33:45.763624" elapsed="0.000446"/>
</kw>
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:45.764664" level="INFO">Creating Session using : alias=session, url=http://10.30.170.85:8181, headers={'Content-Type': 'application/xml'},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x77d08ed1b890&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-04-17T03:33:45.764231" elapsed="0.000736"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:45.768896" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:45.970609" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:46.373079" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:46.375450" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:45.766033" elapsed="0.614740">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:46.381373" elapsed="0.000093"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:46.381936" elapsed="0.000068"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:46.382370" elapsed="0.000124"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:45.765752" elapsed="0.616983">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:47.392099" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:47.593970" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:47.996601" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:47.999159" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:47.387845" elapsed="0.615431">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:48.003735" elapsed="0.000045"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:48.004061" elapsed="0.000052"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:48.004467" elapsed="0.000048"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:47.383859" elapsed="0.620860">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:49.011311" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:49.213086" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:49.615447" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:49.617288" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:49.006666" elapsed="0.613912">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:49.620996" elapsed="0.000041"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:49.621290" elapsed="0.000030"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:49.621566" elapsed="0.000030"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:49.005856" elapsed="0.615891">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:50.626872" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:50.828687" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:51.231212" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:51.232889" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:50.623085" elapsed="0.612927">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:51.236482" elapsed="0.000044"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:51.236802" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:51.237111" elapsed="0.000036"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:50.622562" elapsed="0.614754">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:52.242003" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:52.443364" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:52.845717" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:52.848123" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:52.238614" elapsed="0.614959">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:52.854071" elapsed="0.000147"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:52.854511" elapsed="0.000032"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:52.854771" elapsed="0.000028"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:52.238127" elapsed="0.616828">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:53.861462" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:54.063273" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:54.466554" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:54.468979" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:53.856707" elapsed="0.616048">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:54.473221" elapsed="0.000043"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:54.473562" elapsed="0.000034"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:54.473844" elapsed="0.000031"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:53.855975" elapsed="0.618060">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Check Switches In Topology" owner="FlowLib">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:55.480679" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:55.682522" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:56.085017" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:56.087371" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${RFC8040_OPERATIONAL_TOPO_API}</arg>
<arg>expected_status=200</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:55.475908" elapsed="0.616646">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:56.093173" elapsed="0.000061"/>
</kw>
<kw name="Get Count" owner="BuiltIn">
<var>${count}</var>
<arg>${resp.text}</arg>
<arg>"node-id":"openflow:</arg>
<doc>Returns and logs how many times ``item`` is found from ``container``.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:56.093671" elapsed="0.000050"/>
</kw>
<kw name="Should Be Equal As Numbers" owner="BuiltIn">
<arg>${count}</arg>
<arg>${switches}</arg>
<doc>Fails if objects are unequal after converting them to real numbers.</doc>
<status status="NOT RUN" start="2026-04-17T03:33:56.094246" elapsed="0.000046"/>
</kw>
<arg>1</arg>
<doc>Check switches are in the topology.</doc>
<status status="FAIL" start="2026-04-17T03:33:55.475081" elapsed="0.619467">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<msg time="2026-04-17T03:33:56.094762" level="FAIL">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>10s</arg>
<arg>1s</arg>
<arg>FlowLib.Check Switches In Topology</arg>
<arg>1</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-04-17T03:33:45.765147" elapsed="10.329993">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<doc>Starts mininet and verify if topology is in operational datastore.</doc>
<status status="FAIL" start="2026-04-17T03:33:43.225661" elapsed="12.869636">Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<test id="s1-s11-t1" name="Create Two Active Switch Connections To Controller And Check OVS Connections" line="25">
<doc>Make a second connection from switch s1 to a controller</doc>
<status status="FAIL" start="2026-04-17T03:33:56.095430" elapsed="0.000644">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<test id="s1-s11-t2" name="Restore original Connection To Controller And Check OVS Connection" line="36">
<doc>Restore original Connection To Controller And Check OVS Connection</doc>
<status status="FAIL" start="2026-04-17T03:33:56.096523" elapsed="0.000656">Parent suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</test>
<kw name="Final Phase" type="TEARDOWN">
<kw name="Run Keyword And Ignore Error" owner="BuiltIn">
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:56.102015" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:56.304551" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:56.706892" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:56.709214" level="FAIL">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</msg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="FAIL" start="2026-04-17T03:33:56.099039" elapsed="0.615654">ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/opendaylight-inventory:nodes (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</kw>
<arg>RequestsLibrary.DELETE On Session</arg>
<arg>session</arg>
<arg>url=${RFC8040_NODES_API}</arg>
<doc>Runs the given keyword with the given arguments and ignores possible error.</doc>
<status status="PASS" start="2026-04-17T03:33:56.098334" elapsed="0.616549"/>
</kw>
<kw name="Stop Mininet And Exit" owner="MininetKeywords">
<if>
<branch type="IF" condition="&quot;&quot;&quot;${mininet_conn}&quot;&quot;&quot; != &quot;&quot;">
<kw name="Switch Connection" owner="SSHLibrary">
<arg>${mininet_conn}</arg>
<doc>Switches the active connection by index or alias.</doc>
<status status="PASS" start="2026-04-17T03:33:56.720037" elapsed="0.000177"/>
</kw>
<status status="PASS" start="2026-04-17T03:33:56.719745" elapsed="0.000511"/>
</branch>
<status status="PASS" start="2026-04-17T03:33:56.719715" elapsed="0.000571"/>
</if>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-17T03:33:56.722968" level="INFO">exit</msg>
<arg>exit</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-04-17T03:33:56.720449" elapsed="0.002581"/>
</kw>
<kw name="Read Until" owner="SSHLibrary">
<msg time="2026-04-17T03:33:56.870142" level="INFO">*** Stopping 1 controllers
c0 
*** Stopping 2 links
..
*** Stopping 1 switches
s1 
*** Stopping 2 hosts
h1 h2 
*** Done
completed in 11.205 seconds
[?2004h[jenkins@releng-29266-188-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${TOOLS_SYSTEM_PROMPT}</arg>
<doc>Consumes and returns the server output until ``expected`` is encountered.</doc>
<status status="PASS" start="2026-04-17T03:33:56.723191" elapsed="0.147110"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-17T03:33:56.870656" elapsed="0.000241"/>
</kw>
<arg>${mininet_conn_id}</arg>
<doc>Stops Mininet and exits session ${mininet_conn}</doc>
<status status="PASS" start="2026-04-17T03:33:56.719368" elapsed="0.151600"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-04-17T03:33:56.871210" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-04-17T03:33:56.871131" elapsed="0.000148"/>
</kw>
<doc>Stops mininet.</doc>
<status status="PASS" start="2026-04-17T03:33:56.097952" elapsed="0.773384"/>
</kw>
<doc>Test suite for Split connection bug.</doc>
<status status="FAIL" start="2026-04-17T03:33:43.146926" elapsed="13.724447">Suite setup failed:
Keyword 'FlowLib.Check Switches In Topology' failed after retrying for 10 seconds. The last error was: ConnectionError: HTTPConnectionPool(host='10.30.170.85', port=8181): Max retries exceeded with url: /rests/data/network-topology:network-topology?content=nonconfig (Caused by NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused"))</status>
</suite>
<status status="FAIL" start="2026-04-17T03:08:40.981618" elapsed="1515.892092"/>
</suite>
<statistics>
<total>
<stat pass="4" fail="408" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="0" fail="1" skip="0">all</stat>
<stat pass="0" fail="1" skip="0">controller</stat>
<stat pass="0" fail="1" skip="0">flood</stat>
<stat pass="0" fail="1" skip="0">https://bugs.opendaylight.org/show_bug.cgi?id=2429</stat>
<stat pass="0" fail="1" skip="0">https://bugs.opendaylight.org/show_bug.cgi?id=6595</stat>
<stat pass="0" fail="1" skip="0">inport</stat>
<stat pass="0" fail="1" skip="0">local</stat>
<stat pass="0" fail="1" skip="0">normal</stat>
<stat pass="0" fail="1" skip="0">switch_qualification</stat>
<stat pass="0" fail="1" skip="0">table</stat>
</tag>
<suite>
<stat name="openflowplugin-flow-services.txt" id="s1" pass="4" fail="408" skip="0">openflowplugin-flow-services.txt</stat>
<stat name="MD SAL NSF OF10" id="s1-s1" pass="0" fail="21" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF10</stat>
<stat name="010 Restconf Inventory" id="s1-s1-s1" pass="0" fail="7" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF10.010 Restconf Inventory</stat>
<stat name="020 Restconf Topology" id="s1-s1-s2" pass="0" fail="4" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF10.020 Restconf Topology</stat>
<stat name="030 Restconf Statistics" id="s1-s1-s3" pass="0" fail="4" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF10.030 Restconf Statistics</stat>
<stat name="040 Restconf Frm" id="s1-s1-s4" pass="0" fail="6" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF10.040 Restconf Frm</stat>
<stat name="MD SAL NSF OF13" id="s1-s2" pass="0" fail="24" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF13</stat>
<stat name="010 Restconf Inventory" id="s1-s2-s1" pass="0" fail="7" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF13.010 Restconf Inventory</stat>
<stat name="020 Restconf Topology" id="s1-s2-s2" pass="0" fail="4" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF13.020 Restconf Topology</stat>
<stat name="030 Restconf Statistics" id="s1-s2-s3" pass="0" fail="4" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF13.030 Restconf Statistics</stat>
<stat name="040 Restconf Frm" id="s1-s2-s4" pass="0" fail="9" skip="0">openflowplugin-flow-services.txt.MD SAL NSF OF13.040 Restconf Frm</stat>
<stat name="Stat Manager extended" id="s1-s3" pass="0" fail="326" skip="0">openflowplugin-flow-services.txt.Stat Manager extended</stat>
<stat name="010 SM add upd del flows" id="s1-s3-s1" pass="0" fail="174" skip="0">openflowplugin-flow-services.txt.Stat Manager extended.010 SM add upd del flows</stat>
<stat name="020 SM sal add upd del flows" id="s1-s3-s2" pass="0" fail="152" skip="0">openflowplugin-flow-services.txt.Stat Manager extended.020 SM sal add upd del flows</stat>
<stat name="Switch Qualification" id="s1-s4" pass="0" fail="8" skip="0">openflowplugin-flow-services.txt.Switch Qualification</stat>
<stat name="010 OpenFlow Connection" id="s1-s4-s1" pass="0" fail="1" skip="0">openflowplugin-flow-services.txt.Switch Qualification.010 OpenFlow Connection</stat>
<stat name="020 OpenFlow Actions" id="s1-s4-s2" pass="0" fail="7" skip="0">openflowplugin-flow-services.txt.Switch Qualification.020 OpenFlow Actions</stat>
<stat name="Reconciliation" id="s1-s5" pass="4" fail="19" skip="0">openflowplugin-flow-services.txt.Reconciliation</stat>
<stat name="010 Group Flows" id="s1-s5-s1" pass="4" fail="19" skip="0">openflowplugin-flow-services.txt.Reconciliation.010 Group Flows</stat>
<stat name="2429" id="s1-s6" pass="0" fail="1" skip="0">openflowplugin-flow-services.txt.2429</stat>
<stat name="6917" id="s1-s7" pass="0" fail="2" skip="0">openflowplugin-flow-services.txt.6917</stat>
<stat name="7258" id="s1-s8" pass="0" fail="1" skip="0">openflowplugin-flow-services.txt.7258</stat>
<stat name="7335" id="s1-s9" pass="0" fail="2" skip="0">openflowplugin-flow-services.txt.7335</stat>
<stat name="7349" id="s1-s10" pass="0" fail="2" skip="0">openflowplugin-flow-services.txt.7349</stat>
<stat name="8723" id="s1-s11" pass="0" fail="2" skip="0">openflowplugin-flow-services.txt.8723</stat>
</suite>
</statistics>
<errors>
<msg time="2026-04-17T03:08:44.610292" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:44.812342" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:45.215544" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:47.246822" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:47.448691" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:47.851711" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:49.884479" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:50.086749" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:50.489857" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:52.521645" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:52.723211" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:53.126154" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.150524" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.351974" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.754535" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.779354" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:55.980618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:56.382745" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:58.410430" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:58.612078" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:08:59.014373" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:01.043074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:01.244610" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:01.648922" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:03.674023" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:03.875555" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:04.277980" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:06.303469" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:06.504981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:06.907944" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:09:06.936411" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:07.137787" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:07.540373" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:09.567101" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:09.768563" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:10.171658" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:12.194992" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:12.397736" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:12.801000" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:14.821061" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:15.022556" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:15.425933" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:17.454591" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:17.656068" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.058786" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.086648" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.288133" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:18.690701" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:20.718246" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:20.919694" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:21.322267" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:23.349620" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:23.551280" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:23.954007" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:25.979066" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:26.180558" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:26.583985" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:28.614819" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:28.816249" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.219072" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.242074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.443619" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:29.846504" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:31.873768" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:32.075730" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:32.478581" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:34.502938" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:34.704464" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:35.107193" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:37.135412" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:37.337471" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:37.740370" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:39.766666" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:39.968527" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:40.371248" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:09:40.404253" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:40.605802" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:41.009261" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:43.035821" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:43.238315" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:43.641294" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:45.668168" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:45.870157" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:46.273719" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:48.297324" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:48.498981" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:48.901640" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:50.925373" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:51.127258" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:51.529686" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:51.557664" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:51.759090" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:52.161948" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:54.188995" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:54.390968" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:54.794108" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:56.818169" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:57.019717" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:57.422695" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:59.448683" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:09:59.650442" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:00.053525" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.078268" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.279961" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.682757" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.747052" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:02.948716" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:03.351638" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:05.379365" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:05.581239" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:05.984098" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:08.011260" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:08.212848" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:08.615354" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:10.646927" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:10.849486" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:11.252159" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:13.277691" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:13.478930" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:13.881446" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:10:13.910738" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:14.112261" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:14.515643" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:16.534106" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:16.735866" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:17.139122" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:19.157795" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:19.359924" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:19.762814" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:21.780774" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:21.982546" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:22.385678" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:24.404233" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:24.607094" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.011352" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.032306" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.233994" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:25.636471" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:27.653969" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:27.856491" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:28.259206" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:30.275661" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:30.477669" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:30.880289" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:32.899204" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:33.100994" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:33.503728" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:35.521618" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:35.723225" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:36.126095" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:38.144108" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:38.346276" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:38.749952" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:40.771928" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:40.973688" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:41.376350" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:43.394470" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:43.596152" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:43.998843" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:46.024422" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:46.226734" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:46.629535" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:48.647851" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:48.849772" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:49.252687" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:51.270834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:51.473733" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:51.876691" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:53.893362" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:54.095346" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:54.498432" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:56.513222" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:56.715006" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:57.117706" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:59.132154" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:59.334038" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:10:59.736792" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:01.754525" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:01.956003" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:02.359077" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:04.373496" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:04.577634" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:04.980037" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:06.996528" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:07.197890" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:07.600079" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:09.617073" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:09.818931" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:10.221777" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:12.237849" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:12.439850" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:12.842518" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:14.856907" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:15.059023" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:15.461802" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:17.480526" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:17.682150" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:18.085057" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:20.104155" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:20.306179" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:20.709775" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:22.728520" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:22.930649" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:23.332925" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:25.346251" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:25.548218" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:25.951100" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:25.976372" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:26.177960" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:26.580975" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:28.599422" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:28.801076" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:29.203365" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:31.224668" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:31.426488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:31.829095" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:33.848225" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:34.050000" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:34.452902" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:36.470678" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:36.672136" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.074696" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.134485" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.335939" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:37.738714" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:39.767447" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:39.968985" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:40.371786" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:42.398051" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:42.600015" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:43.002632" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:45.025844" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:45.227459" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:45.629971" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:47.656037" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:47.857887" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.260346" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.278955" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.480568" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:48.883449" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:50.903561" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:51.105059" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:51.507781" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:53.528269" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:53.729856" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:54.132300" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:56.153766" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:56.355988" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:56.758792" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:58.780149" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:58.981747" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:59.384356" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:11:59.405553" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:11:59.606713" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:00.008975" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:02.029831" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:02.231169" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:02.633927" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:04.648980" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:04.850588" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:05.253025" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:07.273085" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:07.474469" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:07.877455" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:09.896506" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:10.097723" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:10.500266" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:12:10.519656" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:10.721201" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:11.123783" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:13.140567" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:13.341966" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:13.744839" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:15.761991" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:15.963576" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:16.365706" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:18.387938" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:18.589296" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:18.991958" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:21.015245" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:21.216866" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:21.619846" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:12:21.669163" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:21.870678" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:22.273328" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:22.287094" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:22.488600" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:22.891478" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:22.910221" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:23.112045" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:23.514741" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:25.535734" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:25.738099" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:26.141324" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:28.160463" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:28.362548" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:28.766626" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:30.791623" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:30.993212" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:31.397965" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:33.442777" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:33.645643" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:34.048744" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152?content=nonconfig</msg>
<msg time="2026-04-17T03:12:34.066771" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:34.268679" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:34.671765" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=152</msg>
<msg time="2026-04-17T03:12:34.685458" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:34.887009" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:35.289673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=config</msg>
<msg time="2026-04-17T03:12:35.345538" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:35.547719" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:35.950608" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:37.975287" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:38.177053" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:38.580169" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:40.658319" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:40.860086" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:41.262956" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:43.292591" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:43.494140" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:43.897066" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:45.923978" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:46.125681" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:46.528633" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0?content=nonconfig</msg>
<msg time="2026-04-17T03:12:49.800222" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:50.001754" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:50.404452" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:52.426889" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:52.628701" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:53.031246" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:55.054779" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:55.256256" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:55.658848" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:57.683523" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:57.885101" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:12:58.287926" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:00.314799" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:00.516646" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:00.919759" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:00.943341" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:01.145562" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:01.548620" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:03.577659" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:03.780328" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:04.183688" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:06.211181" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:06.412811" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:06.821155" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:08.850804" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:09.052471" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:09.455508" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:11.480316" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:11.682587" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.085976" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.106373" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.308089" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:12.711440" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:14.735515" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:14.937488" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:15.340371" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:17.367794" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:17.569700" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:17.972498" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:19.999482" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:20.201870" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:20.604196" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:22.630365" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:22.832268" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.235763" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.261178" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.462787" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:23.865885" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:25.891835" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:26.093305" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:26.496260" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:28.521527" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:28.723288" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:29.126721" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:31.151723" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:31.353696" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:31.758013" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:33.787619" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:33.989636" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:34.392680" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:13:34.416645" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:34.618801" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:35.022143" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:37.050882" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:37.252618" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:37.655796" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:39.684775" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:39.886586" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:40.290103" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:42.321588" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:42.523534" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:42.927860" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:44.955093" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:45.156600" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:45.559331" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:13:45.590648" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:45.792465" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:46.195767" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:48.219984" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:48.421967" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:48.826040" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:50.854613" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:51.056226" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:51.459735" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:53.485904" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:53.687494" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:54.091171" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.122247" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.324162" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.727619" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.763179" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:56.964968" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:57.367827" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:59.394763" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:59.596464" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:13:59.999126" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:02.021852" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:02.223470" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:02.626234" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:04.656823" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:04.858742" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:05.261418" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:07.287891" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:07.491962" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:07.894869" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/node-connector=openflow%3A1%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:07.951722" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:08.153183" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:08.556114" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:10.579256" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:10.781243" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:11.184330" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:13.209322" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:13.411057" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:13.813867" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:15.840502" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:16.041977" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:16.444651" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:18.470239" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:18.672188" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.075348" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.107959" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.309773" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:19.712839" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:21.732180" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:21.933942" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:22.336949" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:24.354802" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:24.557042" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:24.959927" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:26.975775" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:27.177646" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:27.580756" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:29.599074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:29.801066" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.203781" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.228431" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.429845" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:30.832679" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:32.851421" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:33.053067" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:33.455794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:35.472455" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:35.674494" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:36.077548" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:38.097959" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:38.300089" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:38.702938" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:40.720528" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:40.922211" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:41.324761" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:43.343074" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:43.545230" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:43.948539" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:45.963750" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:46.165784" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:46.568914" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:48.587606" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:48.789299" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:49.192219" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:51.211454" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:51.418238" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:51.821820" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:53.838884" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:54.042197" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:54.445063" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:56.468230" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:56.670670" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:57.073812" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:59.093130" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:59.305549" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:14:59.708616" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:01.726305" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:01.928479" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:02.331176" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:04.347718" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:04.549859" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:04.952677" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:06.971292" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:07.173570" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:07.576687" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:09.591835" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:09.794499" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:10.197524" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:12.213979" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:12.416271" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:12.819445" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:14.834170" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:15.036792" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:15.440156" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:17.456668" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:17.658361" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:18.061671" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:20.078486" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:20.280181" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:20.683605" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:22.700906" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:22.903002" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:23.305760" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:25.324777" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:25.526491" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:25.929457" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:27.946014" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:28.148446" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:28.551114" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:30.569839" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:30.771775" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.174486" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.228883" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.430616" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:31.834053" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:33.852222" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:34.054821" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:34.457557" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:36.476033" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:36.677823" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:37.080833" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:39.099634" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:39.301522" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:39.704269" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:41.722765" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:41.925276" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:42.328324" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology/topology=flow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:42.396620" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:42.598156" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:43.000692" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:45.024870" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:45.226181" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:45.629214" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:47.654362" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:47.856313" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:48.259178" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:50.289691" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:50.491174" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:50.893926" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:52.920095" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:53.121886" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:53.524645" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:15:53.540562" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:53.741952" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:54.144707" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:56.164295" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:56.366110" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:56.769862" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:58.790382" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:58.991911" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:15:59.394641" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:01.414307" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:01.616080" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:02.018439" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.040825" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.242935" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.645839" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.663511" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:04.865259" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:05.268181" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:07.289623" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:07.491548" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:07.894470" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:09.915766" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:10.118029" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:10.520922" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:12.547473" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:12.748995" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:13.151380" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.170994" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.372965" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.776193" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.793196" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:15.995093" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:16.397989" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:18.417885" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:18.620308" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:19.023255" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:21.044262" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:21.246238" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:21.649091" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:23.673185" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:23.874625" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:24.276811" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:26.293657" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:26.495663" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:26.898112" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A3?content=nonconfig</msg>
<msg time="2026-04-17T03:16:26.946060" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:27.147888" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:27.552554" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:27.571172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:27.772723" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:28.175665" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:28.195349" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:28.397085" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:28.799367" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:30.823565" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:31.026204" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:31.429625" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:33.451978" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:33.653909" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:34.056905" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:36.081228" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:36.282730" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:36.686421" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:38.708151" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:38.910266" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:39.312959" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:39.327448" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:39.528956" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:39.931509" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:39.943475" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:40.144834" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:40.547492" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:40.564662" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:40.766125" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:41.168614" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:43.189596" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:43.392819" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:43.796780" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:45.817538" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:46.020445" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:46.423129" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:48.441598" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:48.643837" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:49.047326" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:51.070095" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:51.271845" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:51.674621" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139?content=nonconfig</msg>
<msg time="2026-04-17T03:16:51.689746" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:51.891163" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:52.293781" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2/flow=139</msg>
<msg time="2026-04-17T03:16:52.307206" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:52.508966" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:52.911857" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=config</msg>
<msg time="2026-04-17T03:16:52.932478" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:53.134118" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:53.537198" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:55.562264" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:55.763719" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:56.166763" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:58.192761" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:58.394574" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:16:58.797673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:00.820412" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:01.022296" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:01.425176" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:03.451131" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:03.652830" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:04.055709" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=2?content=nonconfig</msg>
<msg time="2026-04-17T03:17:07.422767" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:07.624955" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:08.027653" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:09.048251" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:09.249827" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:09.652618" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:10.677025" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:10.878852" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:11.281261" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:12.302296" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:12.504112" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:12.906578" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:13.928616" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:14.130184" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:14.532447" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:15.553913" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:15.755449" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:16.157970" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:17.176244" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:17.377874" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:17.780697" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:18.805219" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:19.007058" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:19.410325" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:20.431429" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:20.632795" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:21.035355" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:22.051941" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:22.253713" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:22.656588" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:22.835285" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:23.036770" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:23.439457" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:24.460615" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:24.662349" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:25.065184" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:26.088035" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:26.289599" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:26.692038" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:27.713178" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:27.914901" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:28.317312" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:29.337204" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:29.538942" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:29.941738" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:30.963358" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:31.165107" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:31.567848" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:32.589798" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:32.791300" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:33.193715" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:34.216652" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:34.418228" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:34.821132" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:35.843301" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:36.044832" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:36.447566" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:37.469464" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:37.670863" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:17:38.073593" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:10.203853" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:10.405693" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:10.808805" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:11.278187" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:11.479835" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:11.882903" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1</msg>
<msg time="2026-04-17T03:18:12.386298" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<msg time="2026-04-17T03:18:12.587811" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<msg time="2026-04-17T03:18:12.990489" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0</msg>
<msg time="2026-04-17T03:18:15.540574" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:15.742098" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:16.144794" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:17.163545" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:17.365150" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:17.767913" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:18.787754" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:18.989501" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:19.391594" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:20.406169" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:20.607599" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:21.009722" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:22.026015" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:22.227450" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:22.629632" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:23.653706" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:23.855626" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:24.258137" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:25.280093" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:25.481783" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:25.884442" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:26.905278" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:27.106893" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:27.509846" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:28.530679" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:28.732464" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:29.134539" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:30.153244" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:30.354689" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:30.757115" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:31.776581" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:31.978444" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:32.381167" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:33.399670" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:33.601436" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:34.003596" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:35.024762" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:35.226565" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:35.629473" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:36.649034" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:36.850694" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:37.253162" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:38.274312" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:38.475922" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:38.878225" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:39.896320" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:40.098053" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:40.500909" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:41.519680" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:41.721633" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:42.123955" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:43.145007" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:43.347897" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:43.751831" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:44.769655" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:44.971496" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:45.374022" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:46.394972" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:46.596987" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:46.999496" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:18:47.017555" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:47.219265" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:47.622047" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:48.637775" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:48.840316" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:49.243271" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:50.262246" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:50.463683" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:50.866430" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:51.882694" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:52.084128" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:52.486720" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:53.499281" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:53.700983" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:54.104095" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:55.120540" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:55.323064" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:55.725313" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:56.743744" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:56.945162" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:57.347230" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:58.362167" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:58.564339" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:58.966467" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:18:59.984354" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:00.185838" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:00.588246" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:01.606659" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:01.808329" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:02.210737" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:03.224565" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:03.426942" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:03.829538" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:04.843779" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:05.045469" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:05.448210" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:06.465576" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:06.667584" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:07.070231" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:08.086076" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:08.287993" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:08.690630" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:09.705240" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:09.906992" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:10.309552" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:11.325626" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:11.527202" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:11.930282" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:12.945897" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:13.147428" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:13.549908" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:14.566160" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:14.767544" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:15.170308" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:16.187915" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:16.389462" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:16.791773" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:17.805124" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:18.006684" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:18.408718" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:18.423268" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:18.624568" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:19.026673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:19:20.282915" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:20.484576" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:20.887215" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:21.905412" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:22.107159" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:22.509743" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:23.523841" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:23.725884" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:24.128706" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:25.146464" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:25.349465" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:25.752235" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:26.766600" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:26.968149" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:27.370862" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:28.386806" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:28.588598" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:28.991784" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:30.009214" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:30.211757" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:30.614888" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:31.631951" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:31.834621" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:32.237898" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:33.254759" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:33.456599" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:33.858772" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:34.872718" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:35.074935" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:35.478934" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:36.496273" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:36.698169" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:37.101090" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:38.115898" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:38.317954" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:38.721715" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:39.734734" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:39.936691" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:40.339283" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:41.352352" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:41.554167" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:41.957093" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:42.971269" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:43.172796" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:43.575562" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:44.594184" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:44.796667" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:45.199503" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:46.217006" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:46.418888" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:46.822049" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:47.838632" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:48.040511" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:48.443338" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:49.457751" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:49.659836" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:50.062359" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:51.076830" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:51.278616" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:51.681116" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:52.665020" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:52.866288" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:53.268826" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:54.288493" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:54.490045" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:54.892633" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:55.992633" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:56.194264" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:56.596802" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:57.611844" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:57.813801" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:58.217207" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:59.234431" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:59.436799" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:19:59.949689" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:00.968906" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:01.173030" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:01.576996" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:02.600038" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:02.802443" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:03.205236" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:04.225096" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:04.427942" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:04.830910" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:05.845113" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:06.047348" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:06.450534" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:07.471055" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:07.672950" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:08.075630" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:09.095827" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:09.297603" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:09.700299" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:10.719799" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:10.921682" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:11.324311" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:12.343029" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:12.544796" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:12.947452" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:13.962622" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:14.164637" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:14.567011" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:15.587845" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:15.789715" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:16.192039" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:17.209822" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:17.411266" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:17.814349" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:18.829433" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:19.031322" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:19.434209" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:20.455171" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:20.657516" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:21.060045" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:22.079494" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:22.281164" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:22.686912" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:20:22.704696" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</msg>
<msg time="2026-04-17T03:20:22.906303" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</msg>
<msg time="2026-04-17T03:20:23.308931" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes/node=openflow%3A1/flow-node-inventory:table=0/flow=1</msg>
<msg time="2026-04-17T03:20:23.323556" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:23.525275" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:23.928149" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:24.942367" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:25.144084" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:25.546613" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:26.562855" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:26.764790" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:27.167521" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:28.183320" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:28.385016" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:28.787485" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:29.804293" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:30.005934" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:30.408246" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:31.420914" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:31.622593" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:32.024858" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:33.039664" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:33.241479" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:33.643829" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:34.657132" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:34.858571" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:35.261042" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:36.276289" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:36.478372" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:36.880664" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:37.898421" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:38.100205" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:38.502935" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:39.520341" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:39.722595" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:40.124738" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:41.136350" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:41.338060" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:41.741181" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:42.757593" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:42.960025" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:43.363049" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:44.378175" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:44.579924" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:44.982288" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:45.997930" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:46.199427" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:46.601742" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:47.617416" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:47.819089" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:48.221692" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:49.237191" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:49.439167" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:49.842105" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:50.859193" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:51.060805" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:51.463223" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:52.477133" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:52.679088" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:53.081679" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.097058" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.298576" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.701010" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.715943" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:54.917200" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:20:55.320058" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:27:05.829314" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:06.031270" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:06.434177" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:08.454495" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:08.656689" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:09.059789" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:11.076575" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:11.278200" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:11.680835" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:13.696778" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:13.898758" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:14.301577" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:16.321731" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:16.523753" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:16.926371" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:18.947697" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:19.149865" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:19.552235" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:21.572262" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:21.774227" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:22.176852" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:24.195139" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:24.397158" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:24.800427" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:26.820172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:27.022080" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:27.424480" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:29.443841" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:29.645286" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:30.048078" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:32.068973" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:32.270759" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:32.673047" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:34.687804" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:34.889570" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:35.292508" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:37.313708" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:37.515577" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:37.918958" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:39.938480" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:40.140520" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:40.543460" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:42.562813" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:42.764654" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:43.167179" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:45.191014" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:45.392624" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:45.794875" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:47.814323" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:48.016139" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:48.418593" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:50.437625" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:50.639782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:51.042322" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:53.058036" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:53.259343" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:53.661892" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:55.680898" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:55.882573" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:56.285661" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:58.304018" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:58.505810" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:27:58.907952" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:00.926523" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:01.128746" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:01.532330" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:03.551828" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:03.753999" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:04.156486" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:06.175610" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:06.377583" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:06.780496" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:08.799097" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:09.000801" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:09.403546" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:11.421624" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:11.623327" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:12.025955" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:14.044887" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:14.246834" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:14.649729" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:16.670570" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:16.872574" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:17.275157" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:19.294034" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:19.495424" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:19.897702" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:21.917752" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:22.119364" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:22.522025" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:24.538306" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:24.739918" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:25.142698" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:27.160602" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:27.362851" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:27.766279" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:29.785459" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:29.987117" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:30.389648" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:32.412530" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:32.614018" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:33.016688" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:35.034486" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:35.236104" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:35.638449" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:37.656239" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:37.857941" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:38.260208" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:40.280445" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:40.482198" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:40.884700" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:42.901906" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:43.103825" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:43.506279" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:45.525878" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:45.727472" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:46.129920" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:48.148780" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:48.350547" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:48.752442" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:50.769188" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:50.970912" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:51.373350" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:53.390548" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:53.592725" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:53.995512" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:56.015896" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:56.217704" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:56.620599" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:58.636797" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:58.838451" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:28:59.240628" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:01.260185" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:01.461670" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:01.864165" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:03.884159" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:04.085915" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:04.488673" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:06.511903" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:06.714021" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:07.116545" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:09.134175" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:09.335808" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:09.738607" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:11.757932" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:11.959699" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:12.362218" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:14.382297" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:14.584598" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:14.987190" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:17.007936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:17.210078" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:17.612672" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:19.637159" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:19.839079" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:20.241728" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:22.261743" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:22.463455" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:22.865938" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:24.883860" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:25.085668" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:25.488140" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:27.508546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:27.709958" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:28.112682" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:30.129994" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:30.332156" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:30.735091" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:32.753705" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:32.955461" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:33.358195" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:35.377665" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:35.579271" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:35.981662" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:37.998571" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:38.200698" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:38.603699" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:40.623038" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:40.824576" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:41.227740" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:43.248045" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:43.450219" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:43.853183" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:45.871920" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:46.073922" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:46.476278" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:48.497546" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:48.699185" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:49.101723" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:51.118533" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:51.319953" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:51.722574" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:53.742523" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:53.944617" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:54.347119" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:56.367887" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:56.569668" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:56.972447" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:58.990834" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:59.192177" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:29:59.594853" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:01.615317" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:01.817061" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:02.219560" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:04.238289" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:04.439908" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:04.841762" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:06.868276" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:07.070627" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:07.473086" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:09.493677" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:09.695740" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:10.098587" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:12.118502" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:12.320111" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:12.722820" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:14.742436" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:14.944211" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:15.346726" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:17.497485" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:17.699299" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:18.101894" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:20.123472" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:20.325045" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:20.727626" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:22.743362" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:22.944868" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:23.347191" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:25.364970" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:25.567062" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:25.969318" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:27.988749" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:28.190588" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:28.593310" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:30.609910" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:30.812125" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:31.214606" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:33.231172" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:33.432757" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:33.835462" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:35.854675" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:36.056517" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:36.458932" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:38.478105" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:38.679690" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:39.082223" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:41.101036" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:41.302738" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:41.705730" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:43.725497" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:43.927331" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:44.330251" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:46.350589" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:46.552870" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:46.955708" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:48.976156" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:49.178370" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:49.581618" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:51.603873" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:51.806136" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:52.208743" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:54.230032" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:54.431380" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:54.833696" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:56.852826" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:57.054520" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:57.457539" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:59.477195" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:30:59.679378" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:00.082485" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:02.102597" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:02.304579" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:02.707115" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:04.724269" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:04.926022" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:05.328458" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:07.345277" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:07.547842" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:07.950604" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:09.970846" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:10.173193" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:10.575983" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:12.592591" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:12.794254" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:13.197005" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:15.215035" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:15.416982" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:15.819292" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:17.834753" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:18.036756" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:18.439213" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:20.459298" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:20.661301" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:21.064048" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:23.084663" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:23.286353" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:23.689234" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:25.705698" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:25.907794" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:26.310138" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:28.330612" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:28.532297" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:28.934657" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:30.954197" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:31.156060" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:31.558517" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:33.578096" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:33.779800" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:34.181782" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:36.199934" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:36.401607" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:36.804328" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:38.823946" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:39.026151" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:39.428956" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:41.449662" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:41.651181" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:42.053724" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:44.073568" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:44.275478" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:44.677438" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:46.693904" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:46.895681" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:47.298294" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:49.319627" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:49.521475" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:49.923702" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:51.943371" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:52.145157" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:52.547306" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:54.566514" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:54.768275" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:55.171208" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:57.193487" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:57.396013" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:57.798523" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:31:59.818208" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:00.020023" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:00.422722" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:02.443980" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:02.645807" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:03.048770" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:05.065839" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:05.267221" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:05.669235" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:07.688250" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:07.890003" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.292277" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.308892" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.510026" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:08.912377" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:09.925486" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:10.127232" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:10.530676" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:11.548477" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:11.749932" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:12.152368" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:13.166481" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:13.368206" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:13.770321" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:14.787048" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:14.988818" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:15.391216" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:16.406420" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:16.608011" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:17.010685" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:18.025575" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:18.227903" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:18.631322" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:19.648510" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:19.850325" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:20.253041" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:21.268998" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:21.470884" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:21.873536" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:22.887670" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:23.089686" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:23.492279" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:24.509472" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:24.712049" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:25.114617" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:26.129563" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:26.331581" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:26.734101" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:27.749346" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:27.951046" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:28.353547" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:29.370032" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:29.572456" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:29.974833" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:30.990984" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:31.193561" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:31.596468" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:32.613909" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:32.816264" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:33.219029" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:34.232665" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:34.434665" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:34.837557" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:35.854062" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:36.055950" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:36.458704" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:37.474139" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:37.676069" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:38.078807" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.095321" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.297433" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.699575" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.713202" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:39.915071" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:40.317957" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes?content=nonconfig</msg>
<msg time="2026-04-17T03:32:40.665861" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:40.867583" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:41.270152" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:42.287598" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:42.489877" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:42.892704" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:43.906933" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:44.109534" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:44.512992" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:45.529020" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:45.730845" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:46.133354" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:46.925669" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:32:47.127021" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:32:47.529554" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:32:51.567903" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:51.769932" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:52.172250" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:53.186936" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:53.389088" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:53.791842" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:54.807837" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:55.009882" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:55.412800" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:56.427535" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:56.629616" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:57.031778" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:58.041916" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:58.243707" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:58.646293" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:59.661716" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:32:59.863206" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:00.266031" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:01.279644" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:01.481219" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:01.883550" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:04.615123" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:04.816862" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:05.219345" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:06.234825" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:06.436657" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:06.839311" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:07.850910" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:08.052609" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:08.454734" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:09.471715" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:09.674093" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:10.076817" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:11.093000" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:11.295025" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:11.697675" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:12.713278" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:12.914996" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:13.317619" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:14.335435" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:14.537484" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:14.939699" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:14.955733" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:15.157298" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:15.559773" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:18.265597" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:18.467012" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:18.869181" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:19.885753" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:20.087865" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:20.489994" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:21.506427" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:21.708355" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:22.110732" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:23.127014" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:23.329565" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:23.731641" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:24.749174" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:24.950907" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:25.353301" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:26.370143" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:26.571549" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:26.975225" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:27.990247" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:28.191887" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:28.594438" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:28.611330" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:28.812772" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:29.215988" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:32.038062" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:32.239704" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:32.642812" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:33.660712" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:33.862939" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:34.265508" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:35.282065" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:35.485972" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:35.889068" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:36.904207" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:37.105728" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:37.508267" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:38.523461" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:38.725221" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:39.127571" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:40.143495" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:40.345083" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:40.747902" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:41.762218" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:41.963782" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:42.365545" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:42.381302" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:42.582561" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:42.984881" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:45.768896" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:45.970609" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:46.373079" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:47.392099" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:47.593970" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:47.996601" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:49.011311" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:49.213086" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:49.615447" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:50.626872" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:50.828687" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:51.231212" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:52.242003" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:52.443364" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:52.845717" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:53.861462" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:54.063273" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:54.466554" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:55.480679" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:55.682522" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:56.085017" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/network-topology:network-topology?content=nonconfig</msg>
<msg time="2026-04-17T03:33:56.102015" level="WARN">Retrying (RetryAdapter(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:56.304551" level="WARN">Retrying (RetryAdapter(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
<msg time="2026-04-17T03:33:56.706892" level="WARN">Retrying (RetryAdapter(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError("HTTPConnection(host='10.30.170.85', port=8181): Failed to establish a new connection: [Errno 111] Connection refused")': /rests/data/opendaylight-inventory:nodes</msg>
</errors>
</robot>
